基于电商模式的性能测试(2) —— 使用Jmeter参数化功能+JSR223 PreProcessor+JSON Extractor完成注册登录的数据驱动

news2024/12/23 13:47:03
1、前置条件

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

  • GitHub地址:github.com/macrozheng/…
  • 部署教程:macrozheng.github.io/mall-learni…
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来进行调试

可以看到所有的变量值,最终完成脚本调试,顺利通过。

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1860549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国首场以AI数字内容风控为主题的大会正式官宣,首批演讲嘉宾和议题揭晓!

曾经我们感叹的“AI迎来了iPhone时刻”,如今已变成“iPhone迎来了AI时刻”。前段时间,苹果全球开发者大会的召开,以及闻声而起的资本市场,无一不再次佐证了AI的无穷想象。 从OpenAI直播演示GPT-4o和谷歌的I/O开发者大会2024&…

Qt开发 | Qt界面布局 | 水平布局 | 竖直布局 | 栅格布局 | 分裂器布局 | setLayout使用 | 添加右键菜单 | 布局切换与布局删除重构

文章目录 一、Qt界面布局二、Qt水平布局--QHBoxLayout三、Qt竖直布局四、Qt栅格布局五、分裂器布局代码实现六、setLayout使用说明七、布局切换与布局删除重构1.如何添加右键菜单2.布局切换与布局删除重构 一、Qt界面布局 Qt的界面布局类型可分为如下几种 水平布局(…

【ai】tx2 nx :安装torch、torchvision for yolov5

torchvision 是自己本地构建的验证torchvision nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ python3 Python 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] on linux Type "help", "copyright",…

乐鑫ESP32-WROOM-32E模组设备低功耗控制方案,启明云端乐鑫代理商

在数字化浪潮的推动下,物联网(IoT)正迅速成为我们日常生活的一部分。而在这个领域中,ESP32-WROOM-32E模组以其卓越的性能和多功能性,成为了开发者和制造商的选择。 ESP32-WROOM-32E模组集成了ESP32-D0WD-V3芯片&#…

迁移学习——CycleGAN——循环一致性对抗网络

CycleGAN 1.导入需要的包2.数据加载(1)to_img 函数(2)数据加载(3)图像转换 3.随机读取图像进行预处理(1)函数参数(2)数据路径(3)读取文…

NAS安全存储怎样实现更精细的数据权限管控?

NAS存储,即网络附属存储(Network Attached Storage),是一种专用数据存储服务器,其核心特点在于将数据存储设备与网络相连,实现集中管理数据的功能。 NAS存储具有以下明显优势,而被全球范围内的企…

vncsever ,window 远程ubuntu远程界面安装方式,VNC Viewer安装教程+ linux配置server 操作

linux 端安装 # 安装VNC 服务器软件 sudo apt install autocutsel # 剪切黏贴操作支持的包 sudo apt-get install tightvncserver # 安装的是 VNC 服务器软件,用于远程桌面访问 # 安装Xfce桌面环境 sudo apt-get install xfce4 xfce4-goodies #安装的是 XFCE 桌面环境和其…

EXCEL表格怎么批量删除日期后的时间?

竞价师最近有点忙了,因为百度新出来一个“线索有效性诊断”功能 一、下载电话、表单、咨询表格 二、选中整列 三、选中ctrlf 进行替换,日期输入空格,时间输入*,替换为空即可! 四、整列单元格格式“日期”拉倒底部&…

正则表达式以及文本三剑客grep、sed、awk

正则表达式匹配的是文本内容,文本三剑客都是针对文本内容。 grep:过滤文本内容 sed:针对文本内容进行增删改查 awk:按行取列 一、grep grep的作用使用正则表达式来匹配文本内容 1、grep选项 -m:匹配几次之后停止…

知识付费小程序源码系统 构建知识交易新平台 带完整的安装代码包+搭建部署教程

系统概述 随着互联网技术的不断发展,人们获取信息的方式发生了巨大改变。传统的知识传播方式已经无法满足人们日益多样化的需求,知识付费逐渐成为一种趋势。同时,移动互联网的普及使得小程序成为人们生活中不可或缺的一部分,利用…

拓扑排序-体育课测验(二)

目录 一、问题描述 二、解答思路 三、代码实现 四、刷题链接 一、问题描述 二、解答思路 拓扑排序: 1.设置一个入度数组,构建图的邻接矩阵的同时对入度数组进行初始化 2.执行结点个数次的循环,每次循环都统计入度数组中的入度为0的结点P&…

如何以管理员身份运行CMD?

好久没更新博客了,今天在日常使用中遇到了一个问题,顺便记录下来。 据说国内的谷歌浏览器 Chrome 可以自动升级了,终于不用每次都自己跑去官网下载最新版本,然后安装迁移,重复劳动。下一篇讲如何讲迁移 Chrome&#x…

面试-java并发与多线程的部分函数

1.sleep和wait的区别 基本的差别: Sleep是Thread的方法。Wait是object方法。Wait不传参,最终也是调用wait(native)的传参方法。 Sleep方法可以在任何地方使用。 Wait方法只能在synchronized方法或synchronized方法块中使用。 最主要的本质区别&#xf…

pdf压缩,pdf压缩在线,pdf文件太大怎么变小

在数字化时代,PDF文档因其跨平台、保持原样、易于阅读和打印等特点,成为了我们日常工作和生活中不可或缺的一部分。然而,随着PDF文件的不断累积,存储空间逐渐变得紧张,特别是在处理大量大型PDF文件时,如何有…

qlv格式转换成mp4格式,qlv转换成mp4格式软件工具转换器

在当今的互联网时代,视频格式转换已成为我们日常生活中的一项常见任务。其中,qlv转MP4的需求尤为突出,本文将详细介绍qlv转MP4的几种方法,帮助大家转换视频格式,我们一起来看下。 方法一: 1、使用 "小…

突发!OpenAI停止不支持国家API,7月9日开始执行

6月25日凌晨,有部分开发者收到了OpenAI的信,“根据数据显示,你的组织有来自OpenAl目前不支持的地区的API流量。从7月9日起,将采取额外措施,停止来自不在OpenAI支持的国家、地区名单上的API使用。” 但这位网友表示&am…

如何申请免费SSL证书以消除访问网站显示连接不安全提醒

在当今互联网时代,网络安全已成为一个不可忽视的问题。当用户浏览一些网站时,有时会看到浏览器地址栏出现“不安全”的提示,这意味着该网站没有安装SSL证书,数据传输可能存在风险。那么,如何消除这种不安全提醒&#x…

ONLYOFFICE 桌面编辑器 8.1全新发布,更强大的编辑工具

ONLYOFFICE 8.1 一、什么是ONLYOFFICE?二、怎么安装 ONLYOFFICE 8.1三、主要功能介绍四、总结 一、什么是ONLYOFFICE? ONLYOFFICE 是一款功能强大的办公套件,旨在提供全面的文档、表格和演示文稿编辑解决方案。它集成了文字处理、电子表格和演…

webstorm无法识别@路径的问题,左键无法跳转

在项目根目录下创建 webstorm.config.js use strict; const webpackConfig require(vue/cli-service/webpack.config.js); module.exports webpackConfig;webstorm设置里找到以下位置,引入新建的 webstorm.config.js即可,不生效把webstorm重启一下

LED显示屏的点间距越小越好吗

引言 在LED显示屏市场日趋成熟的同时,小间距显示屏成为了许多用户的首选。然而,点间距真的是越小越好吗?本文将探讨这一问题,并提供全面的选购指南。 点间距:并非越小越好 小间距显示屏因其精细的显示效果而备受青睐。…