JMeter学习——实战
实战1 :测试文件下载
最近工作中需要对一个文件生成下载的接口进行性能测试,所以就选用了JMeter。
参考链接 https://www.cnblogs.com/slsdyl/p/8569010.html
第一步:从百度上下载一张图片,放到本地服务器55上面,用浏览器可以打开的

第二步:打开JMeter,创建一个线程组

第三步:创建一个请求

第四步:创建一个BeanShell Sampeler

代码解析:
import java.io.*;
byte[] result = prev.getResponseData(); //获取到请求返回的数据,prev是获取上个请求的返回。
String file_name = "D:\\a.jpg"; //代表存放文件的位置和文件名。
File file = new File(file_name); //创建一个文件对象,且这个文件对象的名是上面指定的,路径也是上面指定的。
FileOutputStream out = new FileOutputStream(file); //创建文件对象为输出流
out.write(result); //往这个输出流的文件里写数据,就是上一个请求返回的数据。
out.close(); //关闭这个文件输出流。
最后创建一个察看结果树,然后运行就行。

性能测试总结果:1. 在接性能测试任务前必须聊清楚测试用的环境,要与线上生产尽量接近。
2.测试方案要提前聊好。如果涉及到开发的工作量,要从项目上给开发申请时间。
实战2: 性能测试接口总报415
.

解决方法:添加【http信息头管理器】
jmeter测接口 报415
当接口请求头中的 Content-Type 值是 application/json时,必须要添加【http信息头管理器】,将 Content-Type 的值添加进去(否则可能报415)


实战3:接口运行后,观察树中无结果, 报错:java.lang.IllegalArgumentException: Filename must not be null or empty

解决办法,创建的csv data set config,添加后输入进行填写,禁用后可以正常运行

实战4 : 取不到CSV中的参数
原因1: XLSX的文件直接改后缀名成CSV,这种的jmeter就取不到, 这种的用notpad打开也是一堆乱码。 需要将XLSX文件先变成一个sheet页,然后另存为CSV格式
原因2: 在body调用中,要加引号。如图

最后终于能取到了,如图

实战4: postman中能正常调用的接口,但在jmeter中却报错,500,服务器异常, 察看结果树中,请求TAB页看不到POSS data的内容。
解决方法: 比对两边的请求体,发现 postman中用的是raw+json格式, 而Jmeter中勾选了from-data,去掉勾选即可。

Jmeter本身也会占用本机资源,所以官方也建议尽量使用命令行去执行
参考链接:https://blog.csdn.net/MJH827/article/details/143570247
配置好Jmeter测试计划,并保存测试脚本,

保存之后,打开命令行工具,切换到JMeter安装的bin目录下,命令行执行JMeter脚本
命令:jmeter -n -t xxx.jmx -l yyy.jtl
xxx.jmx是要被执行的JMeter脚本即在JMeter客户端保存的脚本
yyy.jtl为压测结果保存的文件,存放在命令行当前目录下
-n:非GUI模式,即在非客户端模式下运行JMeter
-t:指定待执行的JMeter脚本
-l:指定日志文件,即输出相关结果到指定的文件中,一般是jtl文件

命令行执行后,每隔30秒会打印出30秒内的运行情况和运行至今的运行情况,找到日志文件,打开JMeter客户端,添加Aggregate Report,导入日志文件,可以查看执行结果:

小tips
1.在命令行执行的时候,需要修改某个配置时,可以使用文本工具打开JMeter脚本文件(即jmx),然后根据经验去修改字段值,实在不行就再去JMeter修改

2.在命令行调试合理的虚拟用户数的时候,可以根据其打印出来的Avg、Min、Max、Err等字段粗浅的判断服务器性能情况去调整,然后再正式运行查看具体的情况

 
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号