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
image.png
安装包:apache-jmeter-5.4.1.zip

解决JMeter在高分辨率下图标小的问题

1、编写批处理文件

新建一个名为“适配高分辨率.txt”的文本文档,在其中写入如下代码:

  1. echo off
  2. set FILE_NAME=jmeter.properties
  3. echo .
  4. echo .
  5. echo language=zh_CN>> %FILE_NAME%
  6. echo jmeter.hidpi.mode=true>> %FILE_NAME%
  7. echo jmeter.hidpi.scale.factor=2.0>> %FILE_NAME%
  8. echo jmeter.toolbar.icons.size=48x48 >> %FILE_NAME%
  9. echo jmeter.tree.icons.size=48x48 >> %FILE_NAME%
  10. echo sampleresult.default.encoding=utf-8>> %FILE_NAME%
  11. echo jsyntaxtextarea.font.family=楷体>> %FILE_NAME%
  12. echo jsyntaxtextarea.font.size=30>> %FILE_NAME%
  13. pause

这段代码的作用是开放Jmeter适配高分辨率的能力,并且完成默认像素设置,顺便设置了下语言为中文。
代码粘贴完成后保存,并将文件后缀从txt改为bat。这样就做好了一个批处理脚本。

2、执行批处理文件

将刚刚做好的“适配高分辨率.bat”文件放入Jmeter的bin目录下,双击执行。执行完成后,启动Jmeter。
这时可以看到页面样式已经适配了4k的分辨率,大小恢复正常。
但,如果经过刚刚两步操作后,界面依旧没有恢复正常,那请执行下一步操作。

3、自由缩放页面大小

打开页面上方的“选项”菜单,可以看到里面有一个“放大”和一个“缩小”按钮,点击放大即可让页面恢复到合适的大小。

4、表格显示过小的解决方案

如果发现页面上有部分模块样式展示异常如下图:
请在“选项-外观”菜单里切换一下主题(切成其他的再切回来),操作完成后,页面即可恢复正常。

3、Http请求模拟


1、新建线程组

操作:鼠标右键测试计划 -> 添加 -> Threads(Users) -> 线程组 -> 修改测试计划名称
image.png
“线程组”中常用到的一些设置。
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,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非强制停止。
image.png

2、添加取样器HTTP请求

操作:鼠标右键线程组 -> 添加 -> Sampler -> HTTP请求 -> 填写请求参数
image.png
image.png

3、开始Http请求

a. 添加察看结果树监听器,方便查看请求结果

操作:**鼠标右键线程组 -> 添加 -> 监听器 -> 察看结果树
image.png

b. 点击工具栏上单击启动按钮(绿色箭头)启动测试计划

开始验证
PS:响应数据默认显示格式为Text,可切换为JSON Path Tester格式
切换格式
JSON Path Tester

4、响应参数获取


之所以需要获取响应参数,主要是因为常常有这样的需求,要求将上一个接口的返回值作为下一个接口的请求参数。举个栗子:获取即将上映电影中第一部电影的条目信息,这里需要完成两个步骤:

2021-09-12-00-15-30-707460.jpeg

1、添加后置处理器JSON Extractor

操作:将鼠标放置“获取即将上映电影”的HTTP请求上,并按右键 -> 添加 -> 后置处理器 -> JSON Extractor -> 填入变量名等信息
添加后置处理器
变量名等信息填写

2、添加取样器HTTP请求获取电影条目信息及参数使用

2021-09-12-00-15-31-149529.jpeg

3、启动测试计划

在“察看结果树”中可以看到,获取电影条目信息的HTTP请求中,请求参数正确。同时也得要正确的响应参数。
2021-09-12-00-15-31-283518.jpeg
2021-09-12-00-15-31-407529.jpeg
PS:如果需要多变量取值的话,可在JSON Extractor的配置中通过分号(;)将多个变量名分开。
需要注意的是,多个变量名的话,还需要填写Default Vaules,不然启动测试计划后会找不到变量,导致请求失败。
笔者这里是获取id和year两个变量,设置默认值为0和0,这个可随意设置,影响不大。
image.png