jmeter实现幂等测试的一种方法(案例)
最近在研究怎样对电商系统的业务进行幂等测试,利用jmeter对单独业务开展幂等测试可能简便、直接有效吧
场景描述:买家每一笔订单选中商品后,系统会生成一个“ShopCartIds”,而订单时基于“ShopCartIds”进行创建,且具有唯一性
那么,同一个“ShopCartIds”理论上只能创建一个订单,如果去创建多个订单应该会出发幂等性保护。
思路:“ShopCart/SavePurchaseCart”接口获取“ShopCartIds”,模拟5个用户使用同一个“ShopCartIds”同求请求“Order/CreateOrderByShopCart”接口
检查创建订单情况
jmeter步骤:
第一步,创建setup线程组,把“ShopCart/SavePurchaseCart”请求规划到这个线程组内(因为如果把两个接口列入同一个线程组,所有的请求都会循环执行多次)

第二步,创建“返回ShopCartIds”http请求,通过“ShopCart/SavePurchaseCart”获取“ShopCartIds”

第三步,对“ShopCart/SavePurchaseCart”响应数据进行提取,获取“ShopCartIds”,这里使用正则表达式提取器,怎么使用正则表达式参考:https://www.cnblogs.com/becks/p/14951525.html

第四步,把提取到的结果设置为全局变量,跨线程组需要这一方式进行变量传递。怎样使用跨线程组传参可参考:https://www.cnblogs.com/becks/p/12592808.html

第五步,再建一个线程组,且把设置好线程组(线程数可以理解为用户数)

第六步,创建下订单接口,也就时“Order/CreateOrderByShopCart”接口的http请求,划红线即上一个线程组传参过来的“ShopCartIds”

第七步,设置同步定时器,可以理解为lr里面的集合点,即所有用户在这个接口进行同时操作

第八步,设置好各类结果查看和监控后,执行脚本。可以看到结果树里获取“ShopCartIds”仅返回一个结果,而下订单返回了5个结果

我们依次展开所有的“下订单”结果返回,检查请求时间和返回结果


所有的“Sample Start”请求时间均相同,展开响应数据,只有第一个返回成功,且创建订单号,其他返回下架


然后再检查系统订单列表,列表只生成一个订单

理论上,上方案例可实现提交订单幂等性相关测试,但5个用户的数据可能偏少,服务器对5个用户的处理还是没有压力,往往问题都出现再大数据的并发上
但是总体思路方向,应该问题不大,接下来的幂等测试皆以此为参考展开
jmeter实现幂等测试的一种方法(案例)的更多相关文章
- 史上最全的 jmeter 获取 jdbc 数据使用的4种方法——(软件测试Python自动化)
周五,下班了吗?软件测试人. 明天是周末了!给大家推荐一个技术干货好文.史上最全的 jmeter 获取 jdbc 数据使用的四种方法.我也精剪了jmeter的自动化接口测试的视频放在了同名UP主,周末 ...
- Jmeter引用外部jar包的几种方法
总结记录下jmeter引用外部jar包的3种方法及其优缺点: 一.测试计划中添加目录或jar包到Classpath 操作:测试计划->添加目录或jar包到Classpath-->浏览导入j ...
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...
- (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- 智能手机的耗电特征及APP耗电量测试的两种方法
文章陈述了手机发展趋势及耗电特性,集中讨论了时下最为关心的智能手机耗电问题,并介绍了测量手机软件耗电量的两种方法.此外还解释了为何运营商此前会提出收取微信的费用,心跳机制是什么. 美国著名手机公司Pa ...
- 史上最全的 jmeter 获取 jdbc 数据使用的四种方法
jmeter使用jdbc协议获取数据库中数据,很多人都会用,因为大家在做测试的时候,有时候需要大量的用户进行登录,获取需要数据库中真实的数据用于测试,所以常常会用jdbc来获取数据库数据. 那从数据库 ...
- Jmeter笔记2:参数化(五种方法)
案例:邮箱登录操作,参数化登录的用户名 方法一.依赖Jmeter自带的函数助手 选项-->函数助手对话框,即可打开函数助手弹窗 (1)比如使用函数_Random 输入最小值.最大值,点击下方的[ ...
- shell 条件测试语句三种方法
1.test -f file 2.[ -f file ] 3.[[ -f file ]] [ -f file1 -a -f file2]逻辑与[ -f file1 -o -f file2]逻辑或 [ ...
- Loadrunner--基准测试的两种方法
2 练习基准测试方法1 2.1 问题 为登录业务设计场景. 2.2 方案 在控制台中使用循环多次的方式执行场景.(多次数) 2.3 步骤 实现此案例需要执行以下步骤: 步骤一: 1.打开控制台,如下图 ...
- (分享)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
原文地址 http://blog.csdn.net/yangkai_hudong/article/details/18705713
随机推荐
- Readys pg walkthrough Intermediate
nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.175.166 Starting Nmap 7.94SVN ( https://nmap.org ) a ...
- Win7远程桌面连接不上
Windows远程桌面连接不上有多种情况,当完成基本设置后,如果连不上,那么最可能的情况是防火墙和网络设置不匹配. 1. 检查一下Window防火墙中远程桌面的设置,默认情况下只允许"家庭/ ...
- Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
Janus Pro 是 DeepSeek 开发的一个开源多模态人工智能框架,它通过集成视觉和语言处理能力,提供了高性能的多模态任务处理能力. 在线体验: https://deepseek-janusp ...
- 用 DeepSeek 分析,SaaS 多租户的3种隔离模式,结果。。。
大家好,我是汤师爷~ 在SaaS模式下,多租户之间的资源隔离是基础且关键的一环. SaaS服务商需要在确保运营效率和控制成本的前提下,搭建一个让多个租户能够同时访问的共享环境. 虽然大家都在用同一套S ...
- Flink基础Source配置
一.pom文件 https://www.cnblogs.com/robots2/p/16048648.html 二.代码demo FlinkBaseSource.java package net.xd ...
- Luogu P11280 GFOI Round 2 Jom & Terry 题解 [ 黄 ] [ BFS ]
Jom & Terry:讲个笑话,我赛时被诈骗了. 思路 先放结论:如果 Terry 到终点的距离小于等于 Jom 到终点的距离,那么 Terry 一定不会被抓. 为啥呢,因为不管 Jom 堵 ...
- Atcoder [AGC006D] Median Pyramid Hard 题解 [ 紫 ] [ 二分 ] [ adhoc ]
Median Pyramid Hard:二分 trick 加上性质观察题. trick 我们可以二分值域,然后把大于等于它的数标记成 \(1\),其他标记为 \(0\)(有些题需要标记成 \(-1\) ...
- Java中的输出格式化
在Java中,输出格式化是一个非常重要的功能,尤其是在需要精确控制输出格式的场景下. 以下是对代码中输出部分的详细解释: 原代码中的输出: System.out.printf("%.6f\n ...
- 【杂谈】主键ID如何选择——自增数 OR UUID?
1.生成位置如何影响选择? 数据库往返时间 使用自增数时,ID是由数据库在执行INSERT操作时生成的:而UUID则可以在应用层生成. 考虑这样的场景: 一个方法需要插入A和B两个实体.其中B的数据需 ...
- ABB喷涂机器人IRB5400维修保养
为最大限度地保证ABB机器人正常运行,ABB机器人普遍需要在运行6000小时后进行一次保养,特别是针对在恶劣工况与长时间在负载极限或运行极限下工作的ABB机器人,则需要每年进行一次全面ABB机器人保养 ...