Jmeter 测试API接口 查看接口的幂等问题
背景介绍:
比如一个注册接口,要求填入的手机号与DB中已有的不能重复,
如果手机号码重复,则此次注册失败,不会新增会员数据;
如果不重复,则注册成功(忽略其他因素)。
但是用20个并发,同样的请求,请求body中手机号码完全一样,一起进行注册,接口会怎样?
幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。
举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...
如果接口没有考虑幂等性,会导致上述的20个请求,处理结果是大于1条的数据成功插入DB中,且发现手机号码再DB中重复了;
我们做接口功能测试的时候,比如注册接口,异常请求是,请求注册的手机号存在DB中,验证返回xxx且注册不成功。功能测试的时候,单个这个的请求,代码的确能处理,遇到多并发的时候,可能就处理不好了。
说白了,就是有bug。
首先思考一下接口的幂等性对接口的影响?
如果是查询接口,select语句,那不会影响DB中的数据;
如果是新增接口,insert语句,必然影响;
如果是更新接口,update语句,将某个字段更新的时候。。。。。。
请问要怎么解决?
请不要回答加思考时间等,此问题是问架构或者注册数据要怎么存入DB
https://www.cnblogs.com/qianjinyan/p/9051862.html
我之前遇到的case,20个请求同时成功,DB中新增了20个手机号码为一样数据的人。
查询的时候DB中还没有此手机号,但是注册的时候,在同时的时间,
一致性的问题怎么解决?
不要告诉我,mobile字段用bigint数据类型,还不能重复的限制deal with在了DB中~~
我们生产上的系统遇到过这个问题,会员通过微信小程序注册,注册成功了,后来立即收到两条短信,短信里面含有注册卡号;
我作为测试,重现了场景,对PM说,我们接口没有做成幂等性的接口;
PM看我的眼神
Jmeter测试实践:文件下载接口 一 Jmeter步骤 1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求.根据接口文档进行配置. Basic ... 如上: 注册接口,会新增数据,要怎么自动化检查DB中生成的数据呢? 很简单,只需要以下几个配置元件 JSON截取器或者正则表达式截取器:目的在于取出返回消息体中的数据aa JDBC后置处理器:目的在于 ... 一 Jmeter步骤 1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求.根据接口文档进行配置. Basic部分修改如下,Advanced部分保持默 ... 最近在对文件上传接口性能测试时,设置150线程数并发时,总会出现以下错误:connection reset by peer: socket write error 在网上搜索了一下,得到的原因有这些: ... 1.点击options-funciton helper dialog,打开函数助手 在string to calculate MD5 hash 中填写密码,复制function sysntax中的值 ... jmeter测试手机号码归属地接口时,HTTP请求有以下两种书写方法: 1.请求和参数一同写在路径中 2.参数单独写在参数列表中 请求方法既可以使用GET方法又可以使用POST方法. 注意:“服务器名 ... jmeter测试手机号码归属地 jmeter测试手机号码归属地接口时,HTTP请求有以下两种书写方法: 1.请求和参数一同写在路径中 2.参数单独写在参数列表中 请求方法既可以使用GET方法又可以 ... 目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ... 目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ... You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstac ... 本文是转载张元礼的博客 http://blog.csdn.Net/vincetest 一.测试需求描述 对服务后台一系列的http接口功能测试. 输入:根据接口描述构造不同的参数输入值 输出:XML文 ... <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... <%@ include file="/init.jsp" %> <script type="text/javascript" src=&quo ... Liferay 6开发学习(三十):跨页面Portlet之间的调用与数据传递 2014年10月09日 Liferay 评论 2 条 阅读 4,209 views 次 Portlet之间的通信方法有多种 ... 1.官网下载python安装包(eg:python-3.6.3-embed-win32),并解压文件 2.配置环境变量 3.cmd里查看python版本并设置服务路径 4. 访问查看 我之前运行没问题的环境是firefox版本50,对应的驱动是没有问题的,现在firefox自动升级到了60,驱动没有变,我试着把浏览器装回了50,再试就好了, 所以应该是浏览器跟驱动geckodriv ... python3.4学习笔记(三) idle 清屏扩展插件python idle 清屏问题的解决,使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏?在stackoverflow看到 ... 在先进驾驶辅助系统(ADAS)中,结合视觉处理器的CMOS影像感测器已在协助汽车辨识与分类方面发挥关键作用.至于其“听觉”呢? 麦克风也能扮演像摄影机般重要的角色,为自动驾驶车增添更多“智慧”功能吗? ... 最近,和有些猎头沟通时,他们提到RSU的概念,特地搜了下,其和股票期权(Stock Option)差别如下: RSU 和Option 一般都是逐年实现的,比如Offer Letter签三年,上写的给你 ...Jmeter 测试API接口 查看接口的幂等问题的更多相关文章
随机推荐