最近在研究怎样对电商系统的业务进行幂等测试,利用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实现幂等测试的一种方法(案例)的更多相关文章

  1. 史上最全的 jmeter 获取 jdbc 数据使用的4种方法——(软件测试Python自动化)

    周五,下班了吗?软件测试人. 明天是周末了!给大家推荐一个技术干货好文.史上最全的 jmeter 获取 jdbc 数据使用的四种方法.我也精剪了jmeter的自动化接口测试的视频放在了同名UP主,周末 ...

  2. Jmeter引用外部jar包的几种方法

    总结记录下jmeter引用外部jar包的3种方法及其优缺点: 一.测试计划中添加目录或jar包到Classpath 操作:测试计划->添加目录或jar包到Classpath-->浏览导入j ...

  3. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  4. (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  5. 智能手机的耗电特征及APP耗电量测试的两种方法

    文章陈述了手机发展趋势及耗电特性,集中讨论了时下最为关心的智能手机耗电问题,并介绍了测量手机软件耗电量的两种方法.此外还解释了为何运营商此前会提出收取微信的费用,心跳机制是什么. 美国著名手机公司Pa ...

  6. 史上最全的 jmeter 获取 jdbc 数据使用的四种方法

    jmeter使用jdbc协议获取数据库中数据,很多人都会用,因为大家在做测试的时候,有时候需要大量的用户进行登录,获取需要数据库中真实的数据用于测试,所以常常会用jdbc来获取数据库数据. 那从数据库 ...

  7. Jmeter笔记2:参数化(五种方法)

    案例:邮箱登录操作,参数化登录的用户名 方法一.依赖Jmeter自带的函数助手 选项-->函数助手对话框,即可打开函数助手弹窗 (1)比如使用函数_Random 输入最小值.最大值,点击下方的[ ...

  8. shell 条件测试语句三种方法

    1.test -f file  2.[ -f file ] 3.[[ -f file ]] [ -f file1 -a -f file2]逻辑与[ -f file1 -o -f file2]逻辑或 [ ...

  9. Loadrunner--基准测试的两种方法

    2 练习基准测试方法1 2.1 问题 为登录业务设计场景. 2.2 方案 在控制台中使用循环多次的方式执行场景.(多次数) 2.3 步骤 实现此案例需要执行以下步骤: 步骤一: 1.打开控制台,如下图 ...

  10. (分享)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    原文地址 http://blog.csdn.net/yangkai_hudong/article/details/18705713

随机推荐

  1. C语言这种单细胞编程语言和指针的一些理解

    转行做嵌入式也有一段时间了,原来做c#以及一些其它的上层语言, 本想的是也就是仅仅是语法上有点不一样.但是实际使用的切身体会真的是只有自己才知道.很多方面刷新了我对c语言以及计算机结构体系的认知 ,绝 ...

  2. Q:jar包启动脚本备份

    jarServer.sh #!/bin/bash #APP_NAME必须配置. cd `dirname $0` cd .. DEPLOY_DIR=`pwd` APP_HOME=$DEPLOY_DIR/ ...

  3. jar脚本练习

    javaServer.sh #!/bin/bash export JAVA_HOME=/u01/java_home/jdk1.8.0_131 export APP_HOME=/u01/app expo ...

  4. Codeforces 1110D Jongmah 题解 [ 蓝 ] [ 线性 dp ] [ 观察 ]

    Jongmah:小清新麻将 dp 题. 观察 首先观察这两个操作的性质,不难发现我们出掉的所有的顺子只要累计出了三次,这三次顺子就一定可以化作出三次相同的单牌. 而我们只需要最大化操作次数,显然这三次 ...

  5. 开源的 DeepSeek-R1「GitHub 热点速览」

    春节假期回来,一睁眼全是王炸级的开源模型 DeepSeek-R1! GitHub 地址→github.com/deepseek-ai/DeepSeek-R1 DeepSeek-R1 开源还不到一个月, ...

  6. 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)

    在人工智能飞速发展的今天,大语言模型的应用越来越广泛.DeepSeek 作为近期爆火的一款大语言模型,受到了众多开发者的青睐. 今天这篇内容,就来聊聊,如何在本地自己的电脑上部署DeepSeek. 1 ...

  7. nacos(三): 创建第一个生产者producer(单体)

    因为springcloud各个版本之间适配非常神经质,所以事件明确,在本实验环节中:使用的是JDK8,选择的springboot版本是2.7.6. 可以借助阿里云的脚手架(点此进入)帮我们创建第一个s ...

  8. 20 分钟高效掌握 cursor

    本身属于在前端小组的一次小分享,这里做个同步分享. 一.pro 权益说明 目前公司购买了 2 个 pro 月付账号,权益包括无限制 tab 补全与 ai 聊天,但每个月只有 500 个快速请求权益,如 ...

  9. Linux 宝塔常用命令教程

    一.引言 在 Linux 服务器管理中,宝塔面板是一款非常实用的工具.然而,了解一些相关的命令可以让我们在特定情况下更高效地进行操作和管理.本文将为您介绍一些常用的 Linux 宝塔相关命令. 二.安 ...

  10. 【插件介绍】Mesh2Geom插件

    Mesh to Geometry Plugin,来自达索官方论坛社区 原帖链接:Mesh to Geometry Plugin plugin feature: 允许Abaqus 用户从网格文件生成几何 ...