作为一名开发工程师,当我们接到需求的时候,一般就是分析需要,确定思路,编码,自测,然后就可以让测试人员去测试了。在自测这一步,作为开发人员,很多时候就是测一下业务流程是否正确,会不会有逻辑上的错误,如果没有,几乎就完事了。然后到了测试人员去测的时候,很多时候测试人员也只是重复了一遍开发人员的步骤,更多就是把测试用例扩大了而已,特别是一些边界的用例。但是我们的接口在每秒10次请求没问题不代表在每秒1000次请求没问题,当接口部署到线上,当并发量增大的时候,很多在测试阶段没出现的问题在线上就有可能出现了。
有的公司团队比较大,可以请到好的测试人员来做各种测试,但是对于小团队,测试人员可能也不知道每次10次请求和每秒10000次请求的区别,这时作为开发人员的我们,在保证业务逻辑正确的情况下,还要去做压力测试。
本篇介绍一个功能强大压力测试工具——JMeter。
JMeter是Apache下的一个顶级项目,看看官方对它的介绍:
The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.
大概意思就是说JMeter是一个纯java写的开源软件,用来测试可变行为和性能。起初它设计的目的是测试Web应用,但是现在已经扩展到其它的测试。
JMeter可以支持测试的应用/服务/协议有很多:Web (HTTP, HTTPS )、SOAP / REST Webservices、FTP、Database via JDBC、LDAP、Message-oriented middleware (MOM) via JMS、Mail - SMTP(S), POP3(S) and IMAP(S)、Native commands or shell scripts、TCP、Java Objects。反正就是一些服务端常用的东西都能测试就是了。
本篇介绍HTTP的压测。
一、下载
可以自行到官网找到下载链接或者使用下面的链接进行下载:
http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2.1.zip
下载后直接解压,目录结构如下:
-
bin:可执行脚本文件
-
docs:JMeter提供的api的文档
-
extras:额外的文件
-
lib:JMeter本身所依赖的jar包
-
licenses:JMeter依赖的jar包的license
-
printable_docs:JMeter的介绍和使用手册
JMeter既提供了GUI界面方便用户使用也提供了命令行的方式让用户操作,我们先在windows下使用JMeter。
二、准备工作
2.1、运行环境
JMeter5需要至少JDK8,如果你的机器还没有安装JDK,请先安装
2.2、创建接口
这里我们使用springboot来快速构建一个接口,主要代码如下:
@GetMapping(value = "/test")
public String performanceTest(@RequestPara