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
祝大家实验顺利!