1、简介
JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。近来,JMeter因为其使用简单,现在也被社区作为接口测试工具,JMeter就是那个能帮助模拟大量用户访问网站的一个软件。而且它是开源的。
2、JMeter下载和安装
JMeter可以在JMeter的官方网站下载,下载链接如下图所示:
官网连接:https://jmeter.apache.org/
下载链接:https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.1.zip
安装包:apache-jmeter-5.4.1.zip
解决JMeter在高分辨率下图标小的问题
1、编写批处理文件
新建一个名为“适配高分辨率.txt”的文本文档,在其中写入如下代码:
echo off
set FILE_NAME=jmeter.properties
echo .
echo .
echo language=zh_CN>> %FILE_NAME%
echo jmeter.hidpi.mode=true>> %FILE_NAME%
echo jmeter.hidpi.scale.factor=2.0>> %FILE_NAME%
echo jmeter.toolbar.icons.size=48x48 >> %FILE_NAME%
echo jmeter.tree.icons.size=48x48 >> %FILE_NAME%
echo sampleresult.default.encoding=utf-8>> %FILE_NAME%
echo jsyntaxtextarea.font.family=楷体>> %FILE_NAME%
echo jsyntaxtextarea.font.size=30>> %FILE_NAME%
pause
这段代码的作用是开放Jmeter适配高分辨率的能力,并且完成默认像素设置,顺便设置了下语言为中文。
代码粘贴完成后保存,并将文件后缀从txt改为bat。这样就做好了一个批处理脚本。
2、执行批处理文件
将刚刚做好的“适配高分辨率.bat”文件放入Jmeter的bin目录下,双击执行。执行完成后,启动Jmeter。
这时可以看到页面样式已经适配了4k的分辨率,大小恢复正常。
但,如果经过刚刚两步操作后,界面依旧没有恢复正常,那请执行下一步操作。
3、自由缩放页面大小
打开页面上方的“选项”菜单,可以看到里面有一个“放大”和一个“缩小”按钮,点击放大即可让页面恢复到合适的大小。
4、表格显示过小的解决方案
如果发现页面上有部分模块样式展示异常如下图:
请在“选项-外观”菜单里切换一下主题(切成其他的再切回来),操作完成后,页面即可恢复正常。
3、Http请求模拟
1、新建线程组
操作:鼠标右键测试计划 -> 添加 -> Threads(Users) -> 线程组 -> 修改测试计划名称
“线程组”中常用到的一些设置。
1)线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。
2)Ramp-Up Period (in seconds): 虚拟用户增长时长。举个栗子:比如测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 - 走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400。但是实际测试一般不会设置如此长的Ramp-Up时间,一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。
3)循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非强制停止。
2、添加取样器HTTP请求
操作:鼠标右键线程组 -> 添加 -> Sampler -> HTTP请求 -> 填写请求参数
3、开始Http请求
a. 添加察看结果树监听器,方便查看请求结果
操作:**鼠标右键线程组 -> 添加 -> 监听器 -> 察看结果树
b. 点击工具栏上单击启动按钮(绿色箭头)启动测试计划
PS:响应数据默认显示格式为Text,可切换为JSON Path Tester格式
4、响应参数获取
之所以需要获取响应参数,主要是因为常常有这样的需求,要求将上一个接口的返回值作为下一个接口的请求参数。举个栗子:获取即将上映电影中第一部电影的条目信息,这里需要完成两个步骤:
- 获取即将上映电影中的第一部电影的id,接口地址:https://api.douban.com/v2/movie/coming_soon?count=2
- 得到id后,请求接口获取电影条目信息,接口地址:http://api.douban.com/v2/movie/subject/${id}
1、添加后置处理器JSON Extractor
操作:将鼠标放置“获取即将上映电影”的HTTP请求上,并按右键 -> 添加 -> 后置处理器 -> JSON Extractor -> 填入变量名等信息
2、添加取样器HTTP请求获取电影条目信息及参数使用
3、启动测试计划
在“察看结果树”中可以看到,获取电影条目信息的HTTP请求中,请求参数正确。同时也得要正确的响应参数。
PS:如果需要多变量取值的话,可在JSON Extractor的配置中通过分号(;)将多个变量名分开。
需要注意的是,多个变量名的话,还需要填写Default Vaules,不然启动测试计划后会找不到变量,导致请求失败。
笔者这里是获取id和year两个变量,设置默认值为0和0,这个可随意设置,影响不大。