性能测试|电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 性能测试|电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动

1. 前置条件

此例使用的是 GitHub 上一个开源的电商项目 mall,需要的可以去 GitHub 上下载部署,有详细的部署教程:

2. 场景抽离

在这里插入图片描述

首先我们需要对测试的场景进行抽离,明确场景的接口、参数和比例。通过查看API文档,我们抽离除了如下注册的业务流程:

在这里插入图片描述
总结如下:

  • 业务流程 :验证码->注册->登录,
  • 接口比例 :这三个接口场景的比例为1:1:1关系
  • 数据传递 :获取的鉴权信息需保存后未后续的请求做数据支持

3. 实操演示

3.1 IP + 端口的数据驱动

在每一个接口请求中,都需要输入请求的ip和端口,这样费事费力。因此 jmeter 提供了 CSV Data Set Config 来将数据从外部文件读取, HTTP Request Defaults 设置请求默认值,这两种方法配合使用便可完成 IP + 端口 的数据驱动

CSV Data Set Config从外部文件读取数据

1、如下图位置选择

在这里插入图片描述

2、设置 CSV Data Set Config
首先创建好需要导入的数据文件,这里需要的是 IP 和端口:

在这里插入图片描述

设置 CSV Data Set Config

在这里插入图片描述

设置说明:

  • Filename :填入你需要导入的文件地址
  • File encoding :选择编码方式,特别是有中文的时候记得要选 UTF-8
  • Variable Names :设置变量名,要和数据文件中的格式一一对应
  • Ignore first line :是否忽视第一行,有时候我们数据文件的第一行可能是个说明 title ,并不是我们实际需要的数据,这个时候就可以在此选择 true ,将其忽略
  • Delimiter(use '\t' for tab) :如果你的数据文件的数据之间使用 tab 进行分割的,这里就填\t用来说明是tab分割,如果是用逗号 , 分割的,那么就直接填入逗号 , 即可

HTTP Request Defaults设置请求默认值

1、选择 HTTP Request Defaults

在这里插入图片描述

2、设置 HTTP Request Defaults 参数化

将请求的ip和端口进行参数化,格式是${参数};参数要与 CSV Data Set Config 中设置的保持一致,这样设置好以后,后面所有的请求都可以不用再填写ip和端口了
在这里插入图片描述

3.2 前置处理器JSR223 PreProcessor

查看项目API文档,知道了获取验证码的接口需要传电话号码作为参数,而性能测试需要很多并发,所以电话号码肯定是通过参数传递进入,且不可重复;

在这里插入图片描述
为了解决上述问题,我们可以引入前置处理器 JSR223 PreProcessor ,他可以在其中写入Java代码运行,这样就很方便造数据了:
在这里插入图片描述
另外在login接口返回值需要获取token,将获取的token存入指定文件中,以备后面的请求使用
在这里插入图片描述
在这里插入图片描述

3.3 返回值获取传递

JSON Extractor

在上述接口中,会返回验证码用于注册;同样的在登录接口中会返回token用于鉴权;那么就可以利用 JSON Extractor 来完成

1、添加 JSON Extractor

在这里插入图片描述

2、设置变量名和json路径

在这里插入图片描述

3.4 结果调试

有时候想看下脚本对不对,可以利用 Debug Sampler 来进行调试

在这里插入图片描述
可以看到所有的变量值,最终完成脚本调试,顺利通过。

在这里插入图片描述

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
131 3
|
2月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
111 2
|
16天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
41 3
|
14天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
31 1
|
18天前
参数化测试
参数化测试
24 0
|
2月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
61 4
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
93 3
|
9天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
39 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)