import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.Consts;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
public class Test extends AbstractJavaSamplerClient{
//设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
public Arguments getDefaultParameters() {//必要项,不能省略
Arguments args = new Arguments();
args.addArgument("address", "http://mock-api.com/Vdno8oKX.mock/adduser");//无参数可省略,第二项为默认参数,可省略
args.addArgument("username","user1");//无参数可省略,第二项为默认参数,可省略
args.addArgument("password", "111111");//无参数可省略,第二项为默认参数,可省略
return args;
}
//初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
public void setupTest(JavaSamplerContext context) {//可以省略,去掉本项后可同时去掉全局变量
SampleResult sampleResult = new SampleResult();
String address = context.getParameter("address"); //获取在Jmeter中设置的参数值,检测不为空
if (address != null && address.length() > 0) {
sampleResult.setSamplerData(address);
}
String username = context.getParameter("username"); //获取在Jmeter中设置的参数值,检测不为空
if (username != null && username.length() > 0) {
sampleResult.setSamplerData(username);
}
String password=context.getParameter("password");//获取在Jmeter中设置的参数值,检测不为空
if (password != null && password.length() > 0) {
sampleResult.setSamplerData(password);
}
}
//测试执行的循环体,根据线程数和循环次数的不同可执行多次
@Override
public SampleResult runTest(JavaSamplerContext context) {
SampleResult sampleResult = new SampleResult();
String address = context.getParameter("address");//获取参数值,可在GUI页面进行参数化
String username = context.getParameter("username");//获取参数值,可在GUI页面进行参数化
String password = context.getParameter("password");//获取参数值,可在GUI页面进行参数化
sampleResult.sampleStart(); //事务的起点,必选项
try {
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("username", username));//使用username参数
formparams.add(new BasicNameValuePair("password", password));//使用username参数
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
HttpPost httppost = new HttpPost(address);//使用address参数
httppost.setEntity(entity);
sampleResult.setResponseData(httppost.getURI().toString(),"");//设置返回消息,注意第二个参数必须这么写,可忽略
sampleResult.setResponseMessageOK();//成功的Message,可忽略
sampleResult.setSuccessful(true); //设置本次事务成功,必选项
} catch (Exception e) {
sampleResult.setResponseMessage("Error:"+e.toString());//错误信息,可忽略
sampleResult.setResponseData("Error:"+e.toString(),"");//设置返回消息,打印错误到GUI,注意第二个参数必须这么写,可忽略
sampleResult.setSuccessful(false); //设置本次事务失败,必选项
}finally{
sampleResult.sampleEnd();//事务的终点,必选项
}
return sampleResult;
}
//结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
public void teardownTest(JavaSamplerContext context) {//可以省略
}
// public static void main(String[] args) {
// Arguments args0 = new Arguments();
// args0.addArgument("pcaCert",
// "gAMAgwgNTOHwy1QEkluBEnBjYS52MngubXp3Lmdvdi5jbnh+4QACJIVdhYYADIMBAYAAnAEBgAIOK4ADhwABAQIAgAEPAAIOIAABbwABcAABcQABcgACDiEAAg4oAAIOIgACDiMAAg4kAAIOJQACDiYAAg4nAAIOKQACDioAgAEBAAIOLQGCIYOcb53M81VnX2lEAyE84tSYQpYXfjvbPy63TYEpiRKqwoCEIYPGwMuHM6V+n/IuPPz8E+jwiGZUuDn5dsMHEqEohEaB84RAkhstQrUn3f+4pu19askYP+EuEXiF9HEx2nPdHcsedx/ktGwZ0cLYfgZPSFrdpwNe8epxUjCetvfOb0THexmt+A==");
// args0.addArgument("laCert",
// "gAMAgwgNTOHwy1QEklOBEWxhLnYyeC5tencuZ292LmNueH7hAAIkhV2FhgAMgwEBgACcAQGAAg4rgAWIAAEbJQGCIYL6DttrCaObBGCJvXVEOWHnpe/15edkk5R2DgWRKv8g+YCEIYOk7dzqnkGdPwubirpkUscZHrBaQJUmZpnx4JPtEv2LIYRAGwRI9v9hNa+RWGXjV1KuqCA8CNUS+os3pu3k2I+cFAFKT0gz7Aq3R8DYGJ7chVxPfpU5iKIOc/pUG09vrEq+SQ==");
// args0.addArgument("raCert",
// "gAMAgwgNTOHwy1QEkleBEnByYS52MngubXp3Lmdvdi5jbnh+4QACJIVdhYYADIMBAYAAnAEBgAIOK4ADiQABAQKAgAEPAAIOIAABbwABcAABcQABcgACDiEAAg4oAAIOIgACDiMAAg4kAAIOJQACDiYAAg4nAAIOKQACDioBAICAAQEAAg4tAQABgiGDyCeV5RbxGGFfTqrYpMoyeiUeZw1glv9wEruf1vQKWMWAhCGCkTVZ4oIusz/4cvNBXN4YpOwv+Vi7d7P9R/wyPm05CHuEQP/dzsjg+Fq4Ifox+NfWk1xSTyHO7o76xdmq0BaOpmc/p0WvRiBG2FBNVeaTRqohII8QAKcJwarfcyzZ/YFrSZQ=");
// JavaSamplerContext javaSamplerContext = new JavaSamplerContext(args0);
// PseudonymCert pseudonymCert = new PseudonymCert();
// pseudonymCert.setupTest(javaSamplerContext);
// pseudonymCert.runTest(javaSamplerContext);
// }
}