干货 | Jmeter 如何保证抢购、秒杀活动正常运行?

AirPython

共 1917字,需浏览 4分钟

 ·

2020-12-27 23:26


点击上方“AirPython”,选择“加为星标

第一时间关注 Python 原创干货!


1. 前言

平常为了保证运营促销、抽奖活动能正常运行,我们一般都需要使用 Jmeter、LoadRunner 对接口进行压力测试

使用它可以模拟一定量的用户同时去参与促销抽奖活动,最后生成测试报告,以此判系统接口的稳定性

本篇文章以抢购商品为例,包含:登录、抢购 2 个接口;使用 Jmeter 模拟 20 个用户同步完成抢购操作

2. 准备

2-1  Mock 接口

为了方便文章讲解,这里使用 VirAPI Mock 了两个接口:登录、抢购

https://virapi.com/

其中,

登录接口如下:

抢购接口如下:

2-2  准备用户数据

我们使用 Jmeter 中的 CSV 数据文件设置为例,在本地创建文本文件,保存 30 个用户数据

每一条用户数据包含:用户手机号码、密码、用户 ID

3. 操作步骤

打开 Jmeter 软件,我们完成下列操作

3-1  创建线程组,配置 CSV 数据文件

首先,选中测试计划,右键 - 添加 - 线程(用户),并对线程组重新进行命名

线程数为:模拟 30 个用户

启动时长:5 秒钟创建 30 个线程

循环次数:1 次

接着,在当前线程组下创建一个 CSV 数据文件设置,用它导入本地用户数据

在 CSV 文件配置设置中,关联本地准备好的用户数据,并定义关联变量名,其他保持默认即可

需要指出的是,这里指定了 3 个变量,分别是:user、pwd、id,和数据文件中的数据关联上

3-2  HTTP 请求默认值和 HTTP 信息头管理器

在线程组下,添加 HTTP 请求默认值,设置公共的服务器地址

步骤:线程组 - 右键 - 添加 - 配置元件 - HTTP 请求默认值 

接着,添加 HTTP 信息头管理器,用于设置公共的请求头

步骤:线程组 - 右键 - 添加 - 配置元件 - HTTP 信息头管理器

比如,这里可以添加 VirAPI 应用的 app-token 及 content-type

3-3  登录请求

在线程组下,添加一个 HTTP 请求:登录

然后根据 Mock 接口 - ,设置请求的方式、路径及请求体数据

PS:这里直接将第一步关联的变量设置进去即可

3-4  同步定时器

为了真实地模拟并发去调用抢购接口,在抢购接口之前需要一个同步定时器

同步定时器,可以保证所有虚拟用户相互等待,直到所有用户集合之后,才开始后续的接口调用

步骤:线程组 - 右键 - 添加 - 定时器 - 固定定时器

这里,设置模拟用户组的数目和线程数保持一致,这样,如果虚拟用户数达不到指定数目,则不会执行后面的操作

3-5  抢购请求

在线程组下,继续添加一个抢购的 HTTP 请求

同样根据接口 API,编辑 HTTP 请求的方式、路径、请求体

3-6  添加请求结果树、汇总报告、聚合报告

选中线程组,添加请求的结果树、汇总报告、聚合报告

步骤:线程组 - 右键 - 添加 - 监听器 - 察看结果树/汇总报告/聚合报告

如此,Jmeter 的配置已完成!

4. 运行

4-1  直接运行

选中线程组,点击菜单栏的启动按钮,即可以模拟并发调用抢购的接口

运行完成后,点击察看结果树,可以发现 30 个虚拟用户调用抢购接口的开始时间是一致的

另外,在汇总报告和聚合报告中,可以展示平均响应时间、最大/小响应时间、异常比率、吞吐量等结果数据

4-2  生成测试报告

除了直接运行,也可以使用 Jmeter 命令在本地生成测试报告

# -o jmeter_report/ 测试报告生成目录
jmeter -n -t 抢购-并发测试.jmx -l test.jt1 -e -o jmeter_report/

其中

  • -n

    以非 GUI 的形式运行

  • -t

    指定 Jmeter 配置文件

  • -l

    指定生成日志文件模板

  • -e

    测试结束后,生成测试报告

  • -o

    测试报告生成目录

打开测试报告,发现测试结果数据通过图表的形式详细地展示出来了

5. 最后

通过上面的步骤,完成了对接口的压力测试,以此判断接口的性能及稳定性!

实际项目中,由于单机的性能瓶颈,对于大量用户的压测,建议采用 分布式压测 的方式来进行!

我已经将文中的 jmx 配置文件传到后台,关注公众号,后台回复「 201224 」即可获得

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!



浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报