Jmeter本身就集成了一些比较好用的类,可以在脚本开发中辅助使用,具体使用方法可以参考jmeter的API文档。Jmeter工具的API文档存放在工具包的docs/api文件夹中。
1、vars操作
可以通过vars设置局域变量,提取局域变量的值。
Packages:org.apache.jmeter.threads
Classes:JMeterVariables
使用方法:
1)不需要引用额外的类
2)beanshell中,通过vars.get()、vars.put()方法使用
String timestamp = "${__time(/1000,)}";
vars.put("timestamp",timestamp);
常用方法:
- 提取变量值:vars.get("变量名")
- 设置变量:vars.put("变量名","变量值")
2、sampler操作
可以通过sampler提取请求数据的详细信息,在前置处理器中使用,可用方法参考:HTTPSamplerBase (Apache JMeter dist API)
Packages:org.apache.jmeter.protocol.http.sampler
Classes:HTTPSamplerBase
使用方法:
1)不需要引用额外的类
2)beanshell中,直接通过sampler.xxx()来调用具体的类型
常用方法:
1)提取请求参数列表:getArguments()
需要引用Arguments相关类
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.config.Argument;
Arguments arguments=sampler.getArguments();
Argument arg=arguments.getArgument(0);
String requestBody=arg.getValue();
2)提取文件上传的信息:getHTTPFiles()
需要引用HTTPFileArg相关类
import org.apache.jmeter.protocol.http.util.HTTPFileArg;
HTTPFileArg[] files = sampler.getHTTPFiles();
String logFile = files[0].getPath();
3)提取Http请求路径:getPath()
不需要引用其他类
String path = sampler.getPath();
4)设置请求数据:setValue("请求数据")
不需要引用其他类
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.config.Argument;
Arguments arguments=sampler.getArguments();
Argument arg=arguments.getArgument(0);
arg.setValue(requestBody);
3、prev操作
可以通过prev提取响应数据的详细信息。在断言或后置处理器中使用
Packages:org.apache.jmeter.samplers
Classes: SampleResult
使用方法:
1)不需要引用额外的类
2)beanshell中,直接通过prev.xxx()来调用具体的类型
常用方法:
1)提取响应状态码:getResponseCode()
不需要引用其他类。
String response_code=prev.getResponseCode();
2)提取String类型的响应数据:getResponseDataAsString()
不需要引用其他类。
String response_data = prev.getResponseDataAsString();
3)提取请求String类型的URL:getUrlAsString()
不需要引用其他类。
String url = prev.getUrlAsString();
4)设置响应数据:setResponseData("响应数据")
不需要引用其他类。
prev.setResponseData(response_data);