H, у меня есть подобный код в JSR223. Утверждение
import groovy.json.JsonSlurper;
import org.apache.jmeter.services.FileServer;
failureMessage = "";
sampleLabel = SampleResult.getSampleLabel();
isResponseCodeCorrect("204");
def isResponseCodeCorrect(String expCode)
{
String actualCode = prev.getResponseCode();
if(!expCode.equals(actualCode)){
failureMessage += "ERROR code: Expected <"+ expCode +"> but we got instead " + actualCode + ";";
}
}
Вопрос в том, чтобы создать библиотеку кода в groovy или java и добавить объекты в исполняемый образец (например, publi). c переменные: ctx, vars, props, SamplerResult)?
Цель состоит в том, чтобы внедрить такие объекты, как SampleResult, AssertionResult (чтобы вызвать -> SampleResult.getSampleLabel ()), AssertionResult.setFailureMessage ("faultMessage); AssertionResult.setFailure (true);) и собственные функции.
Хотелось бы иметь оболочку (некоторый объект) с методами для воспроизведения с Assertion, сохраняя данные в CSV ... Оболочка будет импортирована в JSR223 Assertion, а затем я хотел бы вызвать некоторые специфические c методы .
Ожидаемая оболочка:
@groovy.transform.MapConstructor
class Foo {
SampleResult results,
AssertionResult assertionResult
isResponseCodeCorrect(String expCode) {
String actualCode = prev.getResponseCode();
if(!expCode.equals(actualCode)){
failureMessage += "ERROR code: Expected <"+ expCode +"> but we got instead " + actualCode + ";";
assertionResult.setFailureMessage(failureMessage);
assertionResult.setFailure(true);
log.error(sampleLabel + " Error is going to be saved to the logs");
PrintLogToFile();
}
}
}
JSR223 Утверждение:
import org.foo. wrapper
Foo wrapper = new Foo();
wrapper.isResponseCodeCorrect("200");
Или некоторые полезные вещи, чтобы избежать дублирования кода между вызовами