Jmeter简单入门
Jmeter是一个基于java开发的压力测试工具,其实最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。它可用于测试静态和动态资源、Web 动态应用程序的性能;Jmeter可以用来模拟服务器、服务器组、网络或对象上的巨大负载,以测试分析不同负载类型下它们的整体性能。
一、安装JAVA JDK
因为Jmeter是基于java的所以在安装Jmeter之前要下载对应版本的java JDK,Jmeter要求的java最低版本是java 8,可以向上兼容更高的版本。
Java JDK官网下载地址:https://www.oracle.com/downloads/,进入官网之后点击首页的java选项
然后点击java jdk for developers选项,根据所需的平台选择对应的安装包或者压缩包进行下载
下载完成之后双击运行jdk-18_windows-x64_bin.exe文件,在弹出的安装导向弹窗点击下一步
之后根据个人所需调整安装路径,继续点击下一步,静候等待安装完成
安装完成之后,我们需要配置对应的java环境变量:
- 在系统变量中添加JAVA_HOME环境变量,value为你的jdk安装路径
- 然后将刚刚新建的JAVA_HOME变量加上bin目录设置到PATH中, %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
配置完成之后打开cmd命令窗口输入java,看看有没有输出java相关的信息;之后再输入javac看有没有显示相关信息
tips:如果没有请检查相关环境变量的配置是否有问题,没有的话一般都是环境变量的配置出现了问题
二、下载安装jmeter
jmeter下载官网:https://jmeter.apache.org/download_jmeter.cgi,进入官网选择二进制的zip压缩包下载即可
配置系统环境变量JMETER_HOME,值为jmeter的下载路径:
之后,解压下载的zip包,之后进入解压文件下的bin目录下,双击jmeter.bat文件即可启动Jmeter
三、使用Jmeter对单个接口进行压力测试
比如说我们现在要针对某个游戏平台的登录接口进行压力测试,看这个接口可承受的最大并发数
-
首先我们打开Jmeter在测试计划下面添加线程组,在这里我们可以根据自己实际测试的接口的功能业务来设置对应的线程数、并发启动的时长、以及循环次数
-
之后在对应的线程组下面添加要压测接口的http请求
-
因为接口请求时http的请求头有一些传输数据长度和数据格式的相关约定,所以我们再添加一个HTTP信息头管理器,来说明这个接口里面定义的一些要求,一般是针对请求时所传输的request body的格式进行说明,是json/text/file或者其他格式,不然接口请求时格式不正确会报错
-
现在我们已经可以开始运行我们的测试计划了,但是运行之后我们看不到运行的结果和每次请求时接口返回的数据,所以我们添加一个查看结果树,这样我们就可以看到每次请求时接口返回的响应结果,以及我们发送请求时发送的请求数据,运行脚本的时候可以在选项中勾选logview窗口这样在遇到报错的时候可以排查具体的原因
6. 在调用接口之后我们可以对接口返回的response header或者response body中的字段进行断言,来判断是否调用接口之后达到了我们预期的效果,所以在这个接口测试下面我们添加一个响应断言,当调用上面这个登录接口的时候response body为一个随机生成的token,可以断言token不为空,response中包含的code码以及message、返回的response body等都可以用来做断言,添加断言运行脚本之后我们可以在查看结果树中书籍某次线程调用就可以看到断言的结果
- 我们看到上面测试的这个登录接口返回的是一个随机生成的token,其实在一般的测试过程中是一整个连贯的动作,当我们登录成功之后进入平台回去做其他的事情,但是其他接口的调用时请求头里面可能会需要带上token来认证用户,所以我们可以使用正则表达式提取器将登录接口response中返回的token提取出来,放到后续接口的request header的所需的access_token中
提取token:
后续使用:
以上只是针对单个接口进行压力测试,在实际的测试业务中,某个流程中所有的接口单个压测都通过,但是整个流程连接起来也会有问题,所以我们不仅仅要针对单个接口做压力测试,还要针对某一个串起来的业务流程做压测,后面我们再讲多个接口的业务流程压测。