JMeter的安装与使用
安装
官网下载:Apache JMeter - Apache JMeter™
下载后直接解压到你想要的位置。进入文件夹中的bin\下,运行批处理文件jmeter.bat。
弹出小黑框后不要关,等一会后GUI界面就会显示出来。
参考:Jmeter开启_weixin_47227973的博客-CSDN博客_jmeter怎么打开
使用
项目的保存和项目的打开操作
项目的打开
添加线程组
打开后,添加线程组。
在线程组中,可以对线程组的线程数和循环次数进行设置。
录制控制器的添加
录制控制器可以对录制的内容进行操作。
代理服务器的添加和使用
通过添加代理服务器实现录制操作。
设置端口,随便设,这里我设8888。
打开电脑设置中的代理,开启代理:
开启代理后,你将无法访问互联网。这时把端口设为刚刚在JMeter设置的端口号8888。保存。
返回JMeter的代理服务器,并开启。
所有通过代理服务器的网页动作都会被记录。会注意到Recording Controller左侧多了展开符号。如果出现没有操作被录制的问题,请检查自己在每次修改系统“代理”设置后,有没有点击“保存“按钮。
添加结果树
录制完成后,保留需要的内容。然后添加结果树以展示执行结果。
点击运行绿色的运行按钮,可展示执行结果。(在这个例子里,我只保留登录请求)
温馨提示:录制中如果存在密码输入问题,检查一下这个地方(下图),可能需要将加密内容(MD5)手动改为密码文本。
用户自定义变量的添加与使用
添加自己定义的变量并使用:
添加变量
使用变量
读取CSV文件
参数配置如下。注意,csv变量名设置后,可在一个HTTP Request进行使用。
调整线程组中线程数,比如你的CSV文件里的记录数,点击绿色的执行按钮,即可在结果树中查看执行结果。
断言
添加断言。在这里,我添加的是一个BeanShell Assertion断言。
通过断言我们可以对执行结果进行判断。例如检查登录情况:
1 | String response = prev.getResponseDataAsString(); |
以上代码即检查相应中是否包含“success”文字,不包含即失败。
聚合报告
添加聚合报告的方法如下:
附:聚合报告分析JMeter基础 — JMeter聚合报告详解_测试萌萌的博客-CSDN博客_jmeter聚合报告
生成HTML格式的性能报告
输入以下命令:
1 | D:\apache-jmeter-5.4.3\bin\jmeter -n -t "Recording Controller.jmx" -l result.jtl -e -o .\ResultReport |
- 参数D:\apache-jmeter-5.4.3\bin\jmeter表示jmeter可执行文件的路径;
- 参数"Recording Controller.jmx"表示项目文件,文件名有空格的记得加个双引号;
- 参数result.jtl表示生成的jtl文件名;
- 参数.\ResultReport表示生成的目标文件夹。
例如,运行:
有以下结果:
操作及图标信息详解参考:Jmeter(三十七) - 从入门到精通进阶篇 - 输出HTML格式的性能测试报告(详解教程) - 李荣洋 - 博客园 (cnblogs.com)
针对要做《软件测试》课程实验的TJUers温馨提示
LAMP
TJU软件工程专业的《软件测试》课程”实验6-Jmeter压力测试“中要求自己搭建一个LAMP环境。
实验6 实验指导书节选
这里指路我的另一篇文章《个人(博客)建站经验分享【持续更新-4.12最新】 - 半方池水半方田 》“以供大家参考,里面就是一些阿里云的文档链接,我在服务器上搭LAMP时参考的就是这些内容。
如果你使用接下来介绍的“禅道”,使用一键安装包,不需要亲手搭LAMP(也许)。
sysstat工具的安装
Linux下:
1 | wget -c http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm |
参考:sysstat命令的安装和使用_安澜仙王的博客-CSDN博客_sysstat
sysstat 工具详细说明(一)_ⅨⅦ的博客-CSDN博客_syss
禅道
待测系统部分我采用禅道项目管理软件,安装与操作指南见:linux用一键安装包 - 禅道开源版使用帮助 - 禅道开源项目管理软件 (zentao.net)。注意记住你开启的Apache端口和Mysql端口。比如这篇教程的81端口和3307端口。
突然发现,好像禅道的Linux一键安装包里面有apache, php, mysql,是不是说LAMP其实不用搭…
如果你已经安了LAMP,尝试看这篇安装禅道:使用源码包安装(各系统通用) - 禅道开源版使用帮助 - 禅道开源项目管理软件 (zentao.net)
正常打开的界面:
如果你在云服务器进行操作,别忘了在安全组打开端口。
增加/编辑项目
在这个实验中,我遇到的难题就是JMeter不能模拟增加Bug,修改Bug标题的操作。花了一天,我用自己的野生智慧采用野生方法解决了问题。
就是在关键的、填写表单的POST请求中,表头增加Cookie字段即可。(提醒:此问题为多数童鞋普遍问题!!)
Cookie的获取方法很多,这里提供我突然得到“启示”的步骤供参考:打开禅道管理页面,在准备提交表单之前,借助浏览器的开发者工具进行抓包(你也可以使用其他的抓包工具):
在开启开发者模式下,模拟一遍“提Bug”操作,筛选出想要的请求。
在JMeter对应的记录中,往Header里再增加一项Cookie:
正确的返回数据:
之前错误的返回数据(HTML):
灵感来源:使用fiddler+jmeter写登录禅道、提交bug的脚本_千与学程序的博客-CSDN博客 受到该文章中改Header的操作的启示。
禅道内批量导入用户数据(选做)
请看我的另一篇文章:《“禅道”的配置与数据库连接 - 半方池水半方田》
提醒中的提醒
使用JMeter录制不成功咋办?
检查JMeter代理服务器选上录制控制器了没
检查本机代理有没有开启成功,试着调换一下JMeter HTTP代理、本机网络代理的开启顺序
录制到的HTTP请求是实时更新在JM
祝大家实验顺利!