录制Jmeter的方式有两种:
①、使用Jmeter本身设置代理服务器进行录制
②、使用Badboy进行录制
这里主要介绍Jmeter本身设置代理服务器录制的方式
1、通过在终端中输入jmeter启动,或者通过快捷方式启动(最好以管理员的方式启动)
2、在测试计划(Test Plan)中添加一个线程组(Thread Group),线程组主要用于存放录制的脚本
右击Test Plan,选择Add→Threads(User)→Thread Group
3、给测试计划(Test Plan)配置一个Http代理服务器(HTTP(S) TestScript Recorder)
右击Test Plan,选择Add→Non-Test Elements→HTTP(S) TestScript Recorder
4、配置Http代理服务器(HTTP(S) TestScript Recorder)
在Global Settings中配置
①端口(Port): 8088
②Test Plan Creation处的目标控制器:测试计划 > 线程组
(Target Controller=Test Plan>Tread Group)
③Test Plan Creation处的分组:每个组放入一个新的控制器
(Grouping=Put each group ina new transaction controller)
5、过滤录制过程中不需要的请求和移除静态资源
在Requests Filtering中配置
包含模式(URL Patterns to include):
.(baidu.cn).
排除模式(URL Patterns to Exclude):
(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)
6、配置火狐浏览器的代理,打开火狐浏览器点击右上角的【三】图标,选择其中的【设置】,并在常规中找到【网络设置】点击【设置】
7、因为录制的是https的脚本,所以还需要导入证书到火狐浏览器,证书会自动生成,再jmeter的bin目录下面找到就可以了
8、要在计算机中导入这个证书,计算机中不导入这个证书也是不能录制https的脚本,按win+r,输入certmgr.msc打开证书,如果导入过就不用导入了
9、选择受信任的根证书颁布导入证书就行了,注意:没导入一定要导入,这里卡了我好久,主要目的就是让这个证书添加信任
10、前面的配置都配置好了,下面就可以点击【启动】来录制脚本了,点击【停止】可以停止脚本的录制
11、证书信任和录制暂停
12、用火狐浏览器输入百度,打开之后大功告成
13、停止之后可以看到录制的脚本了
14、可以通过筛选将不需要的接口删除,也可以给脚本添加断言、添加结果树、聚合报告、Active Threads Over Time、PerfMon Metrics Collector、 Response Times Over Time等来验证脚本
15、通过线程组配置好需要的压力
16、JMeter自动生成压力测试报告
将生成的.jmx文件执行压测并生成.jtl文件
jmeter -n -t 压测_需求列表_UAT.jmx -l result.jtl
●-n:表示以非GUI模式运行。
●-t:指定JMX测试文件的名称。
●-l:指定记录结果的JTL文件的名称。
●-j:指定JMeter执行的日志文件的名称。
●-r:表示运行由JMeter属性remote_hosts指定的测试服务器。
●-R:表示运行指定远程服务器中的测试(例如,-Rserver1,server2)
生成压力测试报告,可以在当前的目录中生成
jmeter -g result.jtl -o report
-o: 指定测试报告的存放位置
之前考虑过每次执行命令都要先去目录下清空报告文件夹和jtl,还要敲命令,很烦,后来想了一个方法,那就是写一个bat,每次执行bat都自动去清空之前的报告,然后执行命令。
del /s /Q C:\Users\15027\Desktop\Work\Jmeter脚本\result.jtl
rd /s /Q C:\Users\15027\Desktop\Work\Jmeter脚本\HttpReport
md C:\Users\15027\Desktop\Work\Jmeter脚本\HttpReport
jmeter -n -t 压测_需求列表_UAT.jmx -l result.jtl
jmeter -g result.jtl -o report
彩蛋:Jmeter响应内容显示乱码问题的解决办法
改配置文件
进入Jmeter的bin目录下,找到jmeter.properties文件,以文本形式打开
本例目录:D:\apache-jmeter-4.0\bin
找到sampleresult.default.encoding这个参数,此行默认是注释的。
可以看到说明,默认值是ISO-8859-1
将ISO-8859-1修改成utf-8,去掉注释符号,重启Jmeter就成功了