当前位置:   article > 正文

使用JMeter完成压力测试入门_压测 update

压测 update

使用JMeter完成压力测试入门

1. 背景

在完成了对接口的unit test后,想着要对接口进行高并发测试,有两种方法:

  1. 自己写一个java测试的类,在里面创建线程,然后调用接口;
  2. 使用压力测试工具对接口进行测试。

这里选择了第二种,用JMeter去对接口进行压力测试,所以这篇文章会简单说一说如何使用JMeter进行压力测试。

2. 安装JMeter

2.1 环境

要求JDK1.8及以上。

文章介绍是在windows环境下安装JMeter

2.2 下载配置JMeter

  • 打开Apache JMeter的官网

    Apache JMeter官方网站

  • 点击下载
    在这里插入图片描述

  • 选择下载JMeter的压缩包,可以看到要求是Java 8+
    在这里插入图片描述

  • 下载完后,对压缩文件进行解压
    在这里插入图片描述

  • 配置环境变量

    对桌面我的电脑右键 – 属性 – 高级系统设置 – 环境变量
    在这里插入图片描述
    配置JMETER_HOME,点击系统变量的新建,变量名直接复制这个:JMETER_HOME,变量值:输入我们解压后放置JMeter文件的位置,找到文件位置后点击一下路径栏直接复制过来就可以了
    在这里插入图片描述
    配置CLASSPATH,一样的位置,从系统变量中找到你的CLASSPATH,然后直接将这一段添加在你的CLASSPATH后面最后就可以了:

    ;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
    在这里插入图片描述
    配置环境变量的意义在于,让系统找到程序的位置,具体可以百度:配置环境变量的意义是什么?

  • 配置完环境后,我们运行一下JMeter看看我们是否安装配置成功,打开JMeter的文件位置 – 进入bin文件夹
    在这里插入图片描述

  • 打开 jmeter.bat 文件
    在这里插入图片描述

  • 我们需要看到两个框框 -cmd窗口 -JMeter窗口
    在这里插入图片描述
    如果执行完上面的步骤都成功了,那么也就意味着可以真正开始JMeter之旅了。

3. 使用JMeter进行简单的压力测试

首先对于和我一样的初学者来说,建议大家先把JMeter的语言切换成中文,主要目的是先熟悉一下软件,知道软件有哪些功能,熟悉一下就马上换回英文版的,在测试的时候使用英文版才是正道。这一块大家不需要跟着我一样设置,而是要根据自己想测试的接口,按照自己的思路设置,下面我会带领大家看一下会经常设置的地方。

切换JMeter语言的位置:
在这里插入图片描述
那么接下来我也会用中文的JMeter带大家设置一下,最后会换回英文版本。

3.1 添加线程组,模拟高并发

首先我们点击添加线程组,建立线程组的目的是为了模拟高并发的场景,这边忽略两个图片中我已经建好的线程组。
在这里插入图片描述
创建好之后呢,我们看一下对于线程组我们能设置什么:
在这里插入图片描述

3.2 添加http请求,对接测试接口

添加http请求是为了对接我们的要测试的接口,对我们的线程组点右键,创建一个http请求。
在这里插入图片描述
同样看一下我们能对http请求设置什么:
在这里插入图片描述

3.3 添加HTTP信息头管理器,设置数据传输格式

当我们使用post并且将数据写在body里面的时候,我们需要在http请求里面设置数据上传方式为 消息体数据,并且需要添加一个Http信息头管理器的信息:
对我们的http请求右键 – 添加 – 配置元件 – HTTP信息头管理器
在这里插入图片描述
我们将json数据格式填入进去:
在这里插入图片描述
现在我们回到http请求,将请求方式设置为POST,传输数据方式设置为 消息体数据,并且将我们的body内容填充进去:
在这里插入图片描述

3.4 添加结果报告,查看运行结果

当我们测试完后,我们可以设置自己想要查看的结果展示报告。
在这里插入图片描述

3.5 添加断言,分辨执行成功还是失败

如果不添加断言,那么我们所有的执行都会通过,这就无法分辨哪些线程执行成功了哪些失败了。

我们添加响应断言作为例子:
在这里插入图片描述
我们看看可以设置什么:

在测试模式里面我们点击了添加,然后根据我们接口的返回值格式,设定当successtrue的时候,说明我们的测试时成功的。
在这里插入图片描述

3.6 添加同步定时器,模拟请求量激增的场景

我们可以通过添加同步定时器去模拟请求量激增的场景,类似秒杀业务。

对http请求右键 – 添加 – 定时器 – 同步定时器:
在这里插入图片描述
我们看看我们能对同步定时器设置什么:

模拟用户组数量:并发线程数,我们需要注意它和http请求里面我们设置的线程数的大小比较,最好别比http请求设置的大;

超时时间:当设置为0,定时器会一直等待到线程数量达到上面设置的模拟用户组数量后,才释放线程,所以如果你的http请求设置中线程的数量小于模拟用户组数量,并且超时时间设置为0,那么就会因为达不到线程数而一直等待,需要手动去停止测试;如果设置非0,那么当定时器等待到这个设置时间了,就不会继续等下去而是直接释放线程。
在这里插入图片描述

3.7 利用JMeter的函数,去将测试用例的数据变随机

当我们去创建用户的时候,我们需要用户名不一样吧,我们有两种方式去做这种情况的测试,第一种我们有测试用的CSV文件,那么我们就可以直接添加CSV文件,做一个参数对应就完事了;第二种是试用JMeter的随机函数。这里我们先将用函数去处理。

我们有两种方式去打开函数助手:

  1. 点击tools – 函数助手对话框;

  2. 直接点击那个白色笔记本样的图标。
    在这里插入图片描述
    打开后,我们去找到Random函数:

这里有4种可以选择,大家可以去研究一下。
在这里插入图片描述
那么我们这里用随机一个字符串(__RandomString)举例:

我们可以设置随机出来的字符串长度、随机备选的字符串集、点击生成按钮查看一下随机出来的数据是什么样的。
在这里插入图片描述
在我们根据生成结果判断随机函数正确后,我们将它拷贝到我们的body中对应的用户账户account里,这里注意两边的双引号不能省略,要不会报错。
在这里插入图片描述
body中添加随机函数后:

{
	"account":"${__RandomString(1,abcdefghijk,)}",
	"title":"leo!"
}
  • 1
  • 2
  • 3
  • 4

3.8 使用CSV文件,自己设定测试用例

如果我们有测试用的CSV文件,那么我们就可以更定制化的使用测试用例了。

对HTTP请求右键 – 配置元件 – CSV数据文件设置:
在这里插入图片描述
让我们来看看如何设置CSV文件:

  • 点击浏览,找到我们的CSV文件位置。

  • 设置文件编码格式。

  • 设置变量名的匹配。

  • 对body中我们对应的字段做匹配
    在这里插入图片描述
    假设我们在变量名称那一栏设定了2个变量 :account,title ,那么我们要在body中做对应的匹配,注意旁边的双引号哦。

匹配后的body:

{
	"account":"${account}",
	"title":"${title}"
}
  • 1
  • 2
  • 3
  • 4

3.9 启动测试和清除测试记录

在我们根据自己的接口定制化的设定好上面的步骤后,我们点击启动按钮进行启动:
在这里插入图片描述
启动后,我们点击之前设置的报告,就可以看到结果啦:
在这里插入图片描述
最后,我们将测试结果清除掉:
在这里插入图片描述

3.10 如果出现测试错误了,如何排查?

测试是不会一帆风顺的,当我们出现了错误,一般有两种方式去进行排查:

  1. 去看你项目的控制台,根据打印的日志排错;
  2. 根据在3.9讲的结果报告,点击错误的测试,进去看请求体里面的内容,看请求体的内容能发现绝大多数问题。

4. 最重要的总结

快,先将JMeter改回英文版本,熟悉完了就换回去啊喂!

这篇文章也是我在研究JMeter一天内写出来的,所以JMeter肯定不止于此,需要大家去多多发掘,根据自己遇到的问题和需要去搜索一下哈哈,可能我也有说的不对的地方,见谅~

不过这篇文章从头到尾大概把可能用到的地方都说了一下,应该能满足很多情况的测试了,大家要开动脑筋多去实际操练操练哈。

祝好!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/92321
推荐阅读
相关标签
  

闽ICP备14008679号