• 1
  • 1
分享
  • 【测试设计】防止相同数据重复提交,截流功能怎么测试?
  • lee 2022-07-15 15:57:37 字数 613 阅读 11749 收藏 1

在目前的平台项目当中,数据新增或者修改已经是一个必备功能,数据相关的测试就需要关注数据的准确性,除此之外,一些电商搞活动的时候,经常能看到系统bug导致多次支付多次扣款的问题,被客户投诉,这些都指向同一个问题,截流问题,也是本文探讨的重点。

1)什么情况下会出现数据重复提交的问题?

用户操作系统新增数据,网页卡顿了,页面没有及时变更,没有返回成功的提示,此时又比较着急,这时候可能就会多次点击提交按钮;

某些功能添加数据不是一步完成的,通常要分成好几步,用户操作完第一步进入第二步页面的时候,又返回了上一步,这种重复的前进和后退操作也有可能会产生重复数据;

用户在提交数据的页面直接刷新,导致页面还是停留在提交之前的状态,这个时候就会多次提交。

2)哪些重要的场景必须测试截流功能?

涉及重要核心数据的接口,必须要安排截流测试,包括:多次连续点击看下有无重复提交,相同账号登录两个不同终端同时操作,看下有无报错,关注数据提交之后页面刷新速度,关注数据唯一性校验。

另外,涉及金钱交易的接口,必须安排截流测试,比如:快速多次点击支付按钮,在弱网环境下页面没有返回之前再次点击支付按钮,涉及拼团秒杀等,多个不同用户卡点同时下单等,关注结果返回情况,有无超库存等情况。

3)解决数据重复提交问题有哪些方法?

常用的方法是直接加锁,相同用户在一定时间(比如10s内)禁止多次操作。

或者,前端加按钮,提交之后按钮置灰,比如获取验证码这种,倒计时1分钟。

微信图片_20220715155005.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 在软件测试行业,尤其是今年疫情的发生,想要在这个行业站稳脚跟,有着扎实的技术是非常重要的,今天小编要为大家介绍的内容就是软件测试工程师如何提升自己?希望能够给大家带来帮助。软件测试工程师如何提升自己?熟练掌握IT核心技术:编程、数据库。先熟悉c++,然后慢慢运用起来,然后学习Python编程基础,在测试中所处的环境和对象就是程序,在测试中运用一些程序命令帮助我们完成一些繁琐、枯燥、重复的简单工作,可以更好更快的找到bug,而且不容易出错,提高了效率,节省了时间。虽然编程不是一个程序测试人员必须具备的能力,但是追求更高效有效率的软件测试是测试人员提高水平的动力之一。学习数据库可以方便使用测试管理...
            0 0 1110
            分享
          • 1、开机后,打开设置,测试wifi及以太网能否正常连接。若有蓝牙,需测试蓝牙功能。WIFI测试WIFI连接测试:无密匙与加密无限网点接入是否正常;连接-断开(*操作a的同时给出c的结果);密码输入值测试:正确的秘密和错误的秘密(少一位、多一位、其他字符等)判断是否提示密码有误;WIFI稳定性测试;WIFI连接成功后,查看WIFI信号提示符是否稳定;安装“WIFI analyzer.apk” (WIFI分析仪),测试其WIFI增益强度是否稳定;休眠后WIFI是否自动进入休眠模式;休眠唤醒后WIFI是否可以正常接入;WIFI干扰测试;多台样机连接同一个Network后MID的响应(模拟现场:可能存...
            13 13 2663
            分享
          • 前言       作为一名曾在京东做过软测岗面试官的人,笔者将从面试技巧以及软件测试面试题层面,分享出自己在面试的时候最常问的那些问题及面试官希望听到的回答!一、简述负载测试与压力测试的区别       压力测试(Stress Testing)       压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正...
            0 0 1295
            分享
          • 真正面试自我介绍;python和java的区别;面向对象的三大特性;具体解释多态;Linux的基础命令;单例模型;给一个继承实例说出他的输出;数据库的查询语句;介绍一下你自己做过的项目或者参加过的竞赛,担任的角色,实现的效果;反问。其他不是技术问题:最快入职时间;公司位置偏远能接受吗?为什么不选择研究所?为什么选择测试而不是开发?1、python和java的区别开源都是开源语言,java的体量要大很多,中文版本多,python资料少且都是英文的。面向对象Java的面向对象体现在动态的接口模型以及非常简单的类机制,他们在对象中封装了父类的变量以及方法,实现了模块化和信息隐藏,而类则提供了类对象的...
            13 13 2537
            分享
          •   以支付宝支付流程为例:  支付宝和微信的支付流程说明:  支付功能一般涉及:  下单接口:调取下单  支付接口:调取第三方支付  回调接口:反馈订单号,用户信息,订单状态。  一、功能性测试  1.订单支付超时(15分钟内支付)  2.取消支付(支付)。  这里我在网上找了一张图,挺全的:  二、兼容性测试  网络切换测试(4G/5G/wifi)  不同端的兼容性测试(Android/iOS不同设备,不同Web浏览器)。  不同客户端版本兼容(覆盖安装、升级安装、卸载安装)  三、安全性测试  支付金额和扣款金额是否一致。  修改接口数据,比如修改支付金额,不允许抓包,或者数据是加密的无法...
            0 0 1612
            分享
      • 51testing软件测试圈微信