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
随机推荐
- BUUCTF刷题-Web方向1~5wp
[极客大挑战 2019]EasySQL 一个sql注入登录框,直接万能密码登录 拿到flag [极客大挑战 2019]Havefun 打开环境,没有任何信息,查看源码,发现这么一段代码 GET方式传入 ...
- Java01-基础入门(准备工作)
从零开始开发Java的第一个程序: [ 任务列表 ] 最新的程序开发手段 Java是什么 Java开发工具 JDK的卸载,下载及安装 JDK配置环境变量 命令行运行第一个Java程序 Java开发工具 ...
- Flink mysql-cdc同步主键分布不均匀的mysql表
一.背景 1.遇到问题描述 通过Flink同步mysql到iceberg中,任务一直在运行中,但是在目标表看不到数据.经排查发现job manager一直在做切片工作,切了一小时还没开始同步数据,日志 ...
- 让 LLM 来评判 | 评估你的评估结果
评估你的评估结果 这是 让 LLM 来评判 系列文章的第三篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 在生 ...
- 计算机基础知识问答:C/C++篇
讲解一下C语言内存空间的模型: 代码区:它是用来存放程序执行代码的一块内存区域.通常,这部分区域是只读的,防止程序意外地修改了它的指令. 常量区:数据段包含了程序中已初始化的全局变量和静态变量.而BS ...
- 【Blender】插件开发笔记
[Blender]插件开发笔记 开发环境配置 打开设置"界面-开发选项": 这样可以通过对功能按钮的右键菜单直接复制或查看其源码,以及快速跳转到 API 手册. 打开设置" ...
- 如何让N1盒子、机顶盒开机从优盘启动进入刷机流程
疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 准备阶段 1.下载我的从优盘启动的工具包 2.确认你 ...
- Spark1.6和2.0版本区别(一) 累加器
1.6版本 2.0版本
- FastAPI依赖注入:参数共享与逻辑复用
扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长 第一章:依赖注入核心原理 1.1 依赖树构建机制 from fastapi import Depends def auth_service ...
- 解决ERROR 1231 (42000): Variable 'time_zone' can't
MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败.(比方说导入数据库,数据表) mysql 数据 ...