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

简介: 性能测试|电商业务性能测试(二): 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 来进行调试

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

在这里插入图片描述

相关文章
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
325 4
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
514 3
|
9月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
7月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
12月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
469 1
Jmeter如何对UDP协议进行测试?
|
12月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
398 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
测试技术
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
本文是关于自动化测试项目实战笔记,主要介绍了如何测试用户注册功能,包括验证码错误、注册成功以及弹框处理的测试步骤和代码实现。
442 2
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
421 2
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
207 1
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
1306 3