介绍
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
官方网站:https://jmeter.apache.org/
下载
这里下载windows版本的jmeter,下载好解压,下面为解压目录
双击运行bin目录下的Apache Jmeter.jar,打开程序界面如下
不带请求参数http接口测试
我们在这里模拟1000个并发访问我们的商品列表界面,操作步骤如下
1 给测试计划添加线程组
2 给我们要进行的同一个项目的请求配置基本请求配置,这样,我们不用每次都带服务器的地址和端口
3 添加http请求
4 添加结果查看组件
添加聚合报告:以查看所有请求的平均访问情况,qps吞吐量等
添加用表格查看结果方式:以查看每个请求的具体访问情况
5 执行测试
点击如图绿色按钮开启测试
6 查看测试结果
可以看到1秒钟可以处理458个请求
下面是用表格查看结果,查看每个线程的具体请求信息
带请求参数http接口测试
测试接口:获取用户信息接口,参数是token
修改配置如下,添加请求和参数
发起1000个并发,可以看到1000个并发用同一个token吞吐量为112个每秒,我们这里用到的同一个token,为一个用户
这个接口因为我们需要在redis中获取token对应数据,因此会出现访问redis的情况,我们查看项目的控制台,可以发现大量下面的异常,即无法获取到连接的情况,因为配置参数过小,导致获取不到连接,会因为获得连接而浪费时间,因此吞吐量会相应下降,因此我们需要调大redis连接池的参数
实际情况下,我们想想的是模拟多个用户,因此会有多个token,我们需要生成1000个真实token来模拟1000个真实用户的访问行为,name怎么快速加载这1000个token参数呢?在这里一行一行加肯定是不理智的
方法如下:
创建如下图所示config.txt,好比第一个参数是用户id,第二个是用户的token,然后依次枚举1000行,表示1000个用户
然后在下面的csv数据文件信息中填写如下,第一个填写刚刚的参数文件地址
接着在前面配置引用的变量名称
这里配置引用这个变量,就会从获取config文件中获取到这个变量的引用值,然后启动测试