[长文预警]JMeter的安装与使用&实验中有用的提示(for TJUers)

JMter的安装使用方法介绍,以及“禅道”项目管理系统的部分使用问题解答。内有针对软件工程专业选了《软件测试》这门课的同学的温馨提醒。

下面介绍JMeter的安装和基本使用方法。结尾附给TJUers的温馨提示。

一、安装

官网下载: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断言。

通过断言我们可以对执行结果进行判断。例如检查登录情况:

String response = prev.getResponseDataAsString();
if(!response.contains("success")){
	Failure=true;
	FailureMessage="登录失败";
}
else{
	Failure=false;
}

以上代码即检查相应中是否包含“success”文字,不包含即失败。

聚合报告

添加聚合报告的方法如下:

附:聚合报告分析JMeter基础 — JMeter聚合报告详解_测试萌萌的博客-CSDN博客_jmeter聚合报告

生成HTML格式的性能报告

输入以下命令:

 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最新】 – 半方池水半方田 (uuanqin.top)“以供大家参考,里面就是一些阿里云的文档链接,我在服务器上搭LAMP时参考的就是这些内容。

如果你使用接下来介绍的“禅道”,使用一键安装包,不需要亲手搭LAMP(也许)。

sysstat工具的安装

Linux下:

wget -c http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm
rpm -Uvh sysstat-11.7.3-1.x86_64.rpm

参考:sysstat命令的安装和使用_安澜仙王的博客-CSDN博客_sysstat

sysstat 工具详细说明(一)_ⅨⅦ的博客-CSDN博客_sysstat

禅道

待测系统部分我采用禅道项目管理软件,安装与操作指南见: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的操作的启示。

禅道内批量导入用户数据(选做)

请看我的另一篇文章:“禅道”的配置与数据库连接 – 半方池水半方田 (uuanqin.top)

提醒中的提醒

使用JMeter录制不成功咋办?

  • 检查JMeter代理服务器选上录制控制器了没
  • 检查本机代理有没有开启成功,试着调换一下JMeter HTTP代理、本机网络代理的开启顺序
  • 录制到的HTTP请求是实时更新在JMeter里的,但是如果你是首次录制的话,录制控制器旁边会多出现小小的展开按钮
  • 如果使用Linux虚拟机进行本地实验,禅道的地址不要设成127.0.0.1(sz童鞋提供的经验)

祝大家实验顺利!

5 1 投票
文章评分
订阅评论
提醒

1 评论
最多投票
最新 最旧
内联反馈
查看所有评论
55552
游客
5 月 前

加了Cookie还是不行,可能我某个步骤错了

1
0
希望看到您的想法,请您发表评论x