压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤
因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境
1.下载windows版本的jmeter,下载好解压,下面为解压目录
2.双击运行bin目录下的jmeter.bat ,打开程序界面如下
不带请求参数http接口测试
我们在这里模拟1000个并发访问我们的商品列表界面,操作步骤如下
(1). 给测试计划添加线程组
(2). 给我们要进行的同一个项目的请求配置基本请求配置,这样,我们不用每次都带服务器的地址和端口
(3). 添加http请求
(4). 添加结果查看组件
添加聚合报告:以查看所有请求的平均访问情况,qps吞吐量等
添加用表格查看结果方式:以查看每个请求的具体访问情况
(5). 执行测试
点击如图绿色按钮开启测试
(5). 查看测试结果
可以看到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文件中获取到这个变量的引用值,然后启动测试