Jmeter性能测试心得
一、Jmeter的pom依赖
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>5.4.1</version>
</dependency>
环境配置:
配置jmeter工作环境
方式:安装jdk并配置环境变量
1)安装jdk,要求是1.8级以上版本
在安装jdk的过程中,记得把路径复制一份,方便后面使用。
2)配置jdk的系统环境变量:
a》java_home:jdk的安装路径,(需要新建)
b》path:增加jdk的工作目录bin ( %java_home%\bin; )
(只需编辑,往里添加工作路径)
3)验证:
A、在dos中输入命令:javac,显示javac命令的格式及选项
B、启动bin目录中jmeter.bat能正常打开。
二、测试案例示例
1.需要继承AbstractJavaSamplerClient类
2.重写3个方法:getDefaultParameters,setupTest,runTest
其中getDefaultParameters,这个方法里所有的参数,都可以在jmeter的C端进行编辑
setupTest方法类似单元测试的beforeMethod,进行一些初始化的动作
runTest是实际的测试用例
在runTest里,有2个方法需要注意
sr.sampleStart();// jmeter 开始统计响应时间标记
sr.sampleEnd();// jmeter 结束统计响应时间标记
sr.setResponseData(JSONObject.toJSONString(respDTO), null); //将结果输出到结果树当中
sr.setDataType(SampleResult.TEXT); //请求头中会多个类型输出
sr.setSuccessful(true);//测试结果,可以做断言
public class GetConsultStatisticsInfoOldPerf extends AbstractJavaSamplerClient {
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
String doctorMobile = "18888888888";
String password = "18888888888";
String token = null;
String tokenName = "X-MOBILE-Token";
String loginUserId = "X-MOBILE-LoginUserId";
String applicationId = "X-MOBILE-ApplicationId";
String versionCode = "X-MOBILE-VersionCode";
String userId = "210000000000000";
String appId = "5";
String code = "70010";
UserLogin userLogin = new UserLogin();
SampleResult sampleResult = new SampleResult();
try {
token = userLogin.getDoctorLoginToken(doctorMobile, password).getToken();
} catch (Exception e) {
e.printStackTrace();
}
String url = "http://10.19.124.136:8080/workStageQueueApi/getConsultStatisticsInfo";
String body = "{\"type\":\"old\"}";
try {
sampleResult.sampleStart();//jmeter 开始统计响应时间标记
JSONObject result = HttpClientUtil.sendPostHeaderBodyToken(url,body,token,tokenName,userId,loginUserId,appId,applicationId,code,versionCode);
sampleResult.sampleEnd();//jmeter 结束统计响应时间标记
sampleResult.setSampleLabel("getConsultStatisticsInfo");
sampleResult.setResponseData(result.toJSONString(), null); //将结果输出到结果树当中
sampleResult.setDataType(SampleResult.TEXT);
if(result.get("content")!=null){
sampleResult.setSuccessful(true);
}else {
sampleResult.setSuccessful(false);
}
} catch (Exception e) {
e.printStackTrace();
}
return sampleResult;
}
3.用例写完之后,将工程打包
4.将打完的jar包,放到jmeter工具的lib/ext目录下,(就只需要1个jar,覆盖就行)
5.打开jmeter,创建一个java请求,可以选择刚才自己编辑的类名和方法
6.通过查看结果树看结果,通过聚合报告看响应时间,tps等