使用Jmeter进行压力测试

项目背景:我们的项目近期增加了一个对app进行登录和浏览统计的需求,来记录客户的设备情况和浏览情况来调整业务结果,会存在比较大的多并发情况,需要用到压力测试,在这里记录一下Jmeter进行压力测试的相关步骤和遇到的问题。


准备工作

下载安装Jmeter

直接到官网: http://jmeter.apache.org/download_jmeter.cgi 进行下载安装,第一次我安装了 Source版本

jmeter下载.png

在我解压之后进入到Jmeter目录的bin文件夹,可以看到jmeter文件,执行 sh jmeter 命令,发现报错了:
jmeter命令行报错.png

我发现在我的bin目录下确实没有ApacheJMeter.jar
于是我去下载了Binaries版本的,这次发现bin目录下有ApacheJMeter.jar文件
Binaries版本目录.png

之后再次打开jmeter文件
打开Jmeter.png

发现已经可以成功打开了


测试用例

接下来可以找个接口试一试

已经打开了Jmeter了,接下来我们创建一个http请求来给接口发点东西,我用我们项目测试环境的登录为例子:


登录接口.png

好,接下来到jmeter里面去弄一弄
首先,添加线程组


添加线程组.png

添加HTTP请求.png

在http请求下加一个监听器,上面可以看到:查看结果树,用来查看结果

好了,来模拟一下接口请求,看下上面的页面里的请求,把参数和请求地址核对输入
jmeter模拟登录接口.png

然后看一下结果
查看结果报错.png

报错了,415错误,不知道是什么错,我们来看下请求内容
查看结果请求情况.png

发现这个地方,Content-Type在我们之前的请求中是 application/json ,但是这里显示的是 application/x-www-form-urlencoded,这肯定不行,先把这里修改一下再试试。
这里的Content-Type是在我们请求头里的内容,发现在Jmeter里面有一个HTTP信息头管理器
信息头管理.png

在信息头管理器里面修改一下链接方式
请求头链接类型设置.png

然后再运行一下
请求成功.png

400.png

请求是成功了,但是返回报了400错误,参数的问题,我们回头把参数的形式改变一下,写成json解析的数据,回到http请求的位置,编辑Body Data
bodydata.png

再跑一遍试试
后台返回成功.png

ok,成功啦,接下来我们做一下多并发

多并发

对一个或多个接口并发请求

多线程设置.png

1.为我们的线程组设置结果树,图形结果或者聚合报告
2.线程数:这里的线程数可以设置一共有多少个线程,也可以看成多少个用户或接口访问者
3.间隔时间:我们设置为0的时候,可以看做同时访问,也就是并发请求


接下来我们修改一下线程数,可以分量级分别设置为10、100、1000、10000来模拟不同量级的请求情况
多并发报告情况.png

在左边我设置两个接口请求,线程数设置为10,间隔时间为0,在聚合报告里面可以看到对于每个请求:①它统计响应信息并提供请求数 ②中位数 ③平均值 ④最大 ⑤最小值 ⑥错误率 ⑦大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量等.


注意的点:因为吞吐量是会把历史记录的数据也计算在内,两个仅名称不同的取样器,其吞吐量为该两个取样器吞吐量总和的一半。所以对于不同取样器应该取不同的名字


给选择器不同名字以区分统计报告.png

翻看了一下Jmeter的各种功能,确实很强大也集成得比较好,可以通过设置断言来验证结果,做回归测试也很方便。学习成本不高,简单实用,是个不错的选择。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。