jmeter
安装&运行
安装:
下载地址:https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.1.1.zip
运行:
由于已经有java环境了,所以不用安装java以及配置环境了,可以直接下一步操作了
找到bin目录下
sh jmeter
优化(可干可不干)
也就是把jmeter添加到环境里 不用找到bin目录而已,麻烦,不写了
开始
运行之后界面是这样的,这个可以把语言设置成中文的

添加第一个测试
往test plan添加一个Thread Group

修改ThreadGroup
一个线程组是负责该次测试的并发控制,主要用到的大概是如下几个参数(我猜的
- Number of Threads 设置线程数(用户数)
- Loop Count 每条线程访问次数
- Duration 持续时间(也就是这些这次测试所持续的时间(我猜的

添加Http请求测试(为例)
这里选择HttpRequest为例,后面可能会选择下面的mqtt进行测试(mqtt的需要装插件,后面再说)

这里填写api接口信息,填写应用层协议路径啥的,跟postman差不多

请求头需要再这里添加,需要注意的是电中ThreadGroup那个选项卡添加

添加请求头就行了,要加什么就点击下面的add按钮添加就可以了

添加完这两点基本信息就填完了。
请求参数从文件中读取或随机参数
如果没有这需求可以先跳过
按照下面的图添加一个CVS Data Set Config

说一下这个csv数据怎么来 ,如果知道的直接跳过了
你可以自己vim 写一个,数据结构大概这样,各个字段用英文字母的逗号分开
id,username,phone 1,abc,12345 2,efg,67890也可以在excel中写好,然后另存为csv类型,保存就完事了(大概下图这个样子

之后即可配置jmeter中的csv模块

这里要注意一下 如果你的csv文件第一行有那些字段名的话,需要将
ignore first line设置为false,不然会取不到值的
到这里为止已经将csv的数据添加好了,使用csv中的数据只要像个大模版语言那样,在你需要的地方使用${key}的方式取出来就可以了,注意的是需要先在上图中的Variable Names字段填好你csv文件中的所有字段
比如在请求头管理的页面中使用

比如在请求中的requestbody中使用

动态数据
网上看来的方法,有需求的可以去测试看看
取参数也可以通过函数 动态生成数据,如 ${__RandomString(8,324YFHDDN0098432U2J32EWWDDYEHD,)}指在后面的字符中随机取8个数字。
添加监听器
上述操作只是将测试的api数据准备好而已,但是我们需要知道测试后的结果反馈,在jmeter中这个功能在listener中实现的,所以需要添加我们需要的监听器,常用的监听器为
Aggregate Report (聚合报告)
可以查看这次场景中一共完成了多少个请求,平均时间、最大/小响应时间、吞吐量等数据
View Tree Result (结果树)
可以查看每个请求的状态、放回结果等等
添加操作具体如下,主要也还是选中Thread Group那个选项,添加找到Listener,选择ViewResultsTree以及AggregateReport(注意:这是两步操作)

ViewResultsTree 结果树
这里根据个人需要,需要把测试的结果保存到某个文件上,但一般都需要的了。至于为什么后面说

AggregateReport 聚合报告
具体操作跟上述结果树操作差不多,可以选择需要输出的结果是errors还是successes的,按需选择了。

注意
在通过命令行启动jmeter的时候注意到有一段话,所以上述的一切操作都是为了生成那个jmx文件,gui上的运行操作仅做测试。
Don’t use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP=”-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m” in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html