51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1410|回复: 0
打印 上一主题 下一主题

软件接口测试中的幂等测试你了解吗?

[复制链接]
  • TA的每日心情
    无聊
    2024-11-5 10:03
  • 签到天数: 77 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2021-11-26 14:44:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    我们知道一个网站的访问中会有很多各种各样的接口请求。
      比如说拿一个购物网站来说,有注册,有登录,有浏览商品,有添加购物车,查询购物车商品这些接口,还有一类特殊的接口,比如:支付。
      我们都知道接口一般都会存在这样一个过程,通过前端发起一个接口请求,也就是我们所说的request,请求以http发送给服务器,服务器接收到对应的请求之后,处理完成,会将处理的结果通过网络再返回给我们客户端也就是我们常说的response。

      但是存在这一一个情况,我request出去,由于网络抖动等原因,response没来得及返回,我又请求了一次,那么如果不作处理这时候会产生用户重复两次的情况。
      对于一般的查询等接口没什么影响,大不了我向服务器重新请求拉取数据等等。
      但是支付这些接口,就会产生一些问题,一旦我请求了2次,没有重复性校验等机制会产生付款2次的可能性。

      再加上很多时候,开发对应同步超时的处理代码写的本身就有问题。
      第三方的框架比如dubbo,zuul,ribbon+Fegin,以及中间件Nginx本身就有重试机制等等。
      分布式主备机之间的通信也有很多重试机制。还有类似于高并发,比如淘宝的双十一,京东的618。
      那么我们该怎么测试这些呢?
      第一,从产品的业务逻辑设计和实现上,查看是否做了幂等,比如与时间戳进行幂等。
      第二,遇到支付这些业务的时候,跟多的需要考虑构造支付失败,检查失败之后的处理机制。
      第三,前端测试,通过快速点击,手动的难以实现,可以使用UI自动化手段进行实现。
      第四,后端接口调用。使用jmeter或者postman多次重复发送参数相同的请求,查看服务器返回给我们的response。

    本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理





    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 10:14 , Processed in 0.064881 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表