【手把手教你使用 Jmeter 进行性能测试 && 自动生成性能测试报告】

🌈个人主页努力学编程’
个人推荐
c语言从初阶到进阶
JavaEE详解
数据结构
学好数据结构,刷题刻不容缓点击一起刷题
🌙心灵鸡汤总有人要赢,为什么不能是我呢

在这里插入图片描述
在这里插入图片描述

性能测试

上一篇文章,详细说明如何使用 selenium 完成自动化测试,对于最终要交付的产品来说,除了对于产品功能的校验,还要对产品的性能进行校验,而性能测试就是专门针对性能进行的测试

性能测试的范围有很多: 比如客户端在发送请求后,服务器返回响应的最大时间是否可以接受,在对数据库中的数据进行操作的时候,查询的速度是否太慢,以及在高并发的场景下,服务器是否还可以长时间的保持一个稳定的状态,以及服务器的最大吞吐量和发送大量请求后出现的错误率。

性能测试中一些常见的指标

高并发:简单理解 在某个时间段产生了大量的请求数据,比如在双11的时候,大量的用户在淘宝登录,购买商品,一般指请求数非常大的场景。

吞吐量: 单位时间内处理的并发数,直接体现软件系统负载承受能⼒。吞吐量越⾼,系统承受的并发越
多,性能越好。

响应时间: 应⽤系统从请求发出开始,到客⼾端接收到最后⼀个字节数据所消耗的时间。
对于web系统⽽⾔,系统响应时间包含前端展现时间和系统响应时间。
前端展现时间:⻚⾯渲染时间.

并发⽤⼾、系统吞吐量、系统响应时间之间的关系

在这里插入图片描述

事务: ⼀个接⼝可以是⼀个事务,多个接⼝也可以是事务,⼀个流程可以是事务,事务代表⼀个完整的功能。

TPS和QPS: TPS 每秒处理的事务数,QPS 每秒查询率。

性能测试的分类

针对分类,可以分为 基准测试,压力测试,负载测试,稳定性测试
其实这几类的区别并不是非常大这里强调一下,关于负载测试和压力测试的区别,负载测试强调在保持系统正常的情况下,对应最大的性能,而压力测试是在极限状态下,系统能够处理的并发数。一般都会把系统搞崩。

其他的这里不做赘述。

Jmeter 介绍

Jmeter 是 Apache 基金会组织基于 Java 开发的压⼒测试⼯具,⽤于对软件做性能测试.

Jmeter 安装:

解压之后,在配置环境变量,这样方便在任意目录下使用 cmd 都能打开 Jmeter .

在这里插入图片描述

在这个文件中,修改 Jmeter 的语言, 将en 改为 zh_CN (简体中文).

在这里插入图片描述
点击 Jmeter.bat 打开 Jmeter 或者直接在 cmd 中输入 Jmeter (添加环境变量之后).
在这里插入图片描述

Jmeter 使用

1.启动Jmeter
在这里插入图片描述
2.创建对应的线程组
在这里插入图片描述
3. 在线程组中添加 HTTP 请求取样器

在这里插入图片描述
4.在 HTTP 请求中添加对应的配置数据

在这里插入图片描述
注意: 这里还需要添加用户名和密码,以参数的形式
类似这样:
在这里插入图片描述

  1. 创建一个 结果数.用来查看发送的请求,对应的数据(你也可以使用 Postman打开)

在这里插入图片描述
6. 发送请求,在结果数中查看

在这里插入图片描述
这里我们可以在线程组中将线程数量配置为 10 类似于模拟高并发的场景.

在这里插入图片描述
查看结果
在这里插入图片描述
大部分情况下,我们发送的请求的协议,IP地址,端口号,都是一样的,所以我们可以将部分抽取出来,
在这里插入图片描述
添加对应的默认选项之后,删除执之前请求对应的默认值,在次发送请求查看结果:
在这里插入图片描述
在这个过程中可能会遇到发送一个没有token数据的 url 这样就会报错
在这里插入图片描述
提醒: 以后遇到请求发送错误,我们都可以先在postman中处理,因为Jmeter不大好用(hhh).

添加了 user_token_header 后 再次发送请求:
在这里插入图片描述

在 Jmeter 再次验证
在这里插入图片描述
显然这样的方法并不实际,一段时间之后,对应的Data数据可能会过期,我们还得重新配置信息头管理器

这里采用的是 Json 提取器
在响应成功的数据中,提取对应一些信息

为了让个人信息也能携带 token数据将 信息头管理器 放到最前面(修改作用域)
在这里插入图片描述
测试文章的详情页
在这里插入图片描述
在这里插入图片描述

对写文章接口的测试在这里插入图片描述

发送请求之后,发现发送失败,但是如果我们使用postman发送成功,这时就需要逐个对比数据,最后得出结论,要求header中的发送数据的格式为application/json 但是在Jmeter中使用的是test,所以要添加一个信息头管理器,然后配置对应的格式:

在这里插入图片描述
有时我们对于成功的请求,取中的内容也要做一个校验,此时可以使用 json断言来进行判断

在这里插入图片描述

同步计时器

针对高并发的场景,我们需要将多个线程一同发起请求,这样才能模拟高并发的场景,在 Jmeter 中我们可以通过添加同步计时器模拟这个过程.

在这里插入图片描述
观察这里将定时器的并发数设置为5,在点击右上角的三角号之后,就可以观察到,所有的线程都是等到5个线程准备好了之后,才开始运行.

这里需要给大家强调一个点,如果我们设置的总线程数小于同步定时器的数量,可以通过循环次数来完成高并发的场景

在这里插入图片描述
我们有时需要将多个接口放在一起,来进行测试,我们可以将这多个接口集合成为一个事务,比如将登陆接口和文章列表接口合并为一个事务.将一个事务为单位进行测试.

这时就可以添加一个事务控制器.
在这里插入图片描述

然后再聚合报告中查看发送请求的结果

在这里插入图片描述

真实模拟用户使用场景

其实再真实的场景下,多个用户不会使用一个账号进行登录,所以我们模拟用户的使用就需要将不同的账号密码一同进行登录.

这里使用的是 svc 文件进行模拟.

可以通过创建一个Excel表格,里面创建多个账号密码.然后将文件保存为 csv 文件,在Jmeter 中将这个文件打开,然后配置选项

在这里插入图片描述
在查看结果数中查看最后的结果,会发现在登陆请求中的账号和密码都是在 csv 数据文件设置中循环读取数据的.

这里模拟两个账号和密码,读取的结果:
在这里插入图片描述

在这里插入图片描述

安装 Jmeter 插件

在真实的测试高并发的场景的时候.并不是直接按确定的并发数开始测试的,而是按照一定的曲线,逐步增加并发的数量.

这里为了模拟这个场景,就需要安装一些插件

插件链接

在这里插入图片描述

放到这个目录底下:
在这里插入图片描述

在这里插入图片描述
然后就可以使用这个插件了

在这里插入图片描述
下载这两个插件
在这里插入图片描述
在这里插入图片描述
添加线程组:
在这里插入图片描述

在这里插入图片描述
观察添加响应时间和吞吐量监听器后的整个流程是咋样的:
在这里插入图片描述
在这里插入图片描述

生成性能测试报告

首先在命令行中切换路径到当前的测试的路径下,然后输入一下命令

在这里插入图片描述
等待一会就可以在first文件夹下找到生成的测试报告了.
在这里插入图片描述

点击 index.html 就可以查看生成的测试报告了

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值