package paulkane.jmeter.myplugin;
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testbeans.TestBean;
import java.io.UnsupportedEncodingException;
import java.time.Clock;
public class MyPlugin extends AbstractSampler implements TestBean {
private static final String UTF_8 = "UTF-8";
private String fieldOne;
private String fieldTwo;
@Override
public SampleResult sample(Entry entry) {
SampleResult sampleResult = new SampleResult();
sampleResult.setSampleLabel(getName());
//This displays as the Request
sampleResult.setSamplerData(asJson(getFieldOne(), getFieldTwo());
sampleResult.sampleStart();
try {
String result = performActionOn(getFieldOne(), getFieldTwo());
sampleResult.setSuccessful(true);
//This displays as the Response data
sampleResult.setResponseData(asJson(result), UTF_8);
} catch (UnsupportedEncodingException e) {
sampleResult.setResponseData(e.getMessage(), UTF_8);
sampleResult.setSuccessful(false);
}
sampleResult.setDataType(SampleResult.TEXT);
sampleResult.sampleEnd();
return sampleResult;
}
private String asJson(String fieldOne, String fieldTwo) {
return String.format("{\n" +
" \"fieldOne\" : \"%s\",\n" +
" \"fieldTwo\" : \"%s\"\n" +
"}", fieldOne, fieldTwo);
}
private String asJson(String result) {
//outputting as json allows you to use Regular expression extractor on the result
return String.format("{\n" +
" \"result\" : \"%s\"\n" +
"}", result);
}
public String getFieldOne() {
return fieldOne;
}
public void setFieldOne(String fieldOne) {
this.fieldOne = fieldOne;
}
public String getFieldTwo() {
return fieldTwo;
}
public void setFieldTwo(String fieldTwo) {
this.fieldTwo = fieldTwo;
}
}