一、Jmeter 压力测试
判断服务器压力测试的指标
Tps: 服务端每秒钟处理事务数
响应时间:每个请求的处理时间
聚合报告:查看压测结果的
在监听器里-添加聚合报告
一般我们在做压力测试的时候,分单场景和混合场景,单场景也就是咱们压测单个接口的时候,多场景也就是有业务流程的情况下,比如说一个购物流程,那么这样的场景就是混合场景,就是有多个接口一起来做操作。
1、单场景,一个请求就可以了
2、混合场景,多个请求
3、压测时间,一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或者一周,根据具体的情况来定
测试案例:
1、在线程组中先添加聚合报告,如下图:
2、设置脚本:利用上节课的脚本(学生金币充值)进行压测
3、设置线程组后点击启动:
4、查看聚合报告
二、Linux下运行jmeter压力测试
我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。
sh jmeter.sh -n –t a.jmx -l res.jtl
-n代表以没有图形化界面启动,-t代表后面是测试脚本,a.jmx也就是我们做好的jmeter脚本,-l代表测试结果 res.jtl就是测试结果文件,查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了
1、把jmeter安装包上传至linux服务器上
2、把需要压测的脚本上传至服务器中
3、运行脚本
加执行权限
./jmeter.sh -n -t +脚本路径 -l +结果文件(***.jtl ***是自己命名结果文件名称)
eg:sh jmeter.sh -n –t a.jmx -l res.jtl
4、把结果文件下载到本地,在jmeter中导入结果文件
三、Jmeter 文件下载
1、找到要下载的文件的url
http://imgsrc.baidu.com/imgad/pic/item/18d8bc3eb13533fa61c56433a2d3fd1f41345bb8.jpg
2、设置脚本
添加http请求,因为是获取数据,所以是get请求
3、添加Bean Shell Sampler
代码如下:
import java.io.*;
byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回
String file_name = "E:\\12.17\\tiger.jpg"; //代表存放文件的位置和文件名
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
4、启动,察看结果树
四、多台机器压测设置
Jmeter添加负载机
我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢,首先要在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。
Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server。
然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了
1、修改jmeter配置文件
搜索remote_hosts
2、调试好脚本后,远程启动
五、补充:jmeter利用json path 抽取变量碰到数组情况
例如:获取所有学生信息中,数据返回的json串是一个数组形式
2、这时候在利用json path 抽取变量第一列数组里的name的时候,需要写成:
$.stu_info[0].name