Http接口系列:如何提高Http接口用例的数据稳定性

此文已由作者王婷英授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


为了尽可能多的释放手工测试,提高测试效率,我们都会想到使用自动化测试,如http接口自动化测试、doubbo接口自动化测试、UI自动化测试等一系列的自动化测试。让我们觉得原来自动化测试的种类也是多彩多姿的。

当前自动化测试在行业中投入的比例如下图:

5dc81134-b71a-4763-8112-f837bc8c6935

           图1 互联网行业自动化投入黄金角

当前考拉这边投入比较多的是单元测试和接口测试,比较符合当前测试行业的投入自动化的比例情况。目前,我们在http接口执行持续集成CI的时候,经常会出现测试用例执行失败了。详细的失败调用情况数据(数据来源于考拉质量平台)如下:

eea34af1-e04f-4bea-a2f4-d4501df1ae66

              图2 http接口执行失败的数据统计表

从图2中,我们可以看出,当前考拉的接口自动化不稳定的比例如下:环境问题占57%,数据问题占25%,测试用例问题占4.5%,其他问题占10.5%,发现bug数占3%。前三名分别是环境问题、数据问题和其他。

  1. 环境问题:这个问题是存在多元因素导致,整个考拉的工程之间的关系链比较长且有一定的复杂性,需要在环境迭代中找到平衡的方法。

  2. 数据问题:这个目前有很多种情况会发生数据问题,如下:

    (a)测试用例里的测试数据,在测试环境被别人动了,改变了这条数据的属性状态,或者是数据已经别删除了
    (b)测试用例里的测试数据对应的测试用例比较一次性,只能跑一次,每次跑之前,都需要把数据提前准备好
    (c)数据库链接变更后,测试用例的测试数据检验不通过,需要重新调整测试数据的获取源

    3. 基本上数据问题就上面说的几点,不过应该还存在一些遗漏,主要是结合自己在跑接口自动化的时候出现的一些问题。

其他:这个暂时没有进行调研   

上述过渡说了当前考拉接口不稳定的原因进行了简单的分析。

那么接下来,我们一起聊一聊如何避免接口测试用例数据的不稳定。

下面我们来简单的看下一个简单的接口测试用例的迭代优化,以达到一定的稳定性。

例如:delete操作的接口

该接口只要是删除长文里权限列表里的用户(只要在这个列表里的permissionid始终为10001,而openId会发生变化

6361e11c-785b-4664-aecc-ec037c06de7f

               图3 delete接口的V1.0

图3中,直接将openId直接赋值,这样就会导致一个问题,只能删除这个指定的用户,且自动化跑了一次之后,这个接口再次重新跑就会直接失败。这种接口测试用例非常的不稳定,当然初次写的时候,很多人会先这么写,写完之后,再进行优化。

5c3e8b7f-c1ba-412f-8360-ecdddf96de98?imageView&thumbnail=980x0

88fe8d9a-9e16-4e46-ba8e-4f37a972ed1e

                   图4 delete接口的V2.0

图4是对图3的V1.0进行的一次迭代,使用了list接口来协助delete接口,同时使用了TestNG里的dependsOnMethods依赖执行的方法将两个接口合在一个接口里,并将openId这个字段进行参数化。一般这种情况下,delete接口是相对于V1.0是非常稳定的。但是这个有一个弊端就是万一这个list的size==0,那么此时delete接口已经会跑不通过。那么这个接口就需要我们再一次对其稳定性进行迭代。

126d8add-e9c4-416f-aa79-09943fee235a

                     图5 delete接口的V3.0

图5和图3长得很相似,但是V3.0的迭代版本是将V1.0和V2.0进行结合在一起。具体操作如下:

381656a7-04b7-46a1-9ac8-597915b7604f

                    图6 delete接口V3.0的流程图

如果delete接口按照V3.0进行,那么类似这种数据稳定性基本上是可以解决。

当然测试用例数据的稳定性还有其他类型的。后续我们遇到了类似的场景继续进行研究分析,有更好的建议可以pop私信我,再好好交流。本次就先聊这么多哈^_^


网易云免费体验馆,0成本体验20+款云产品! 

更多网易技术、产品、运营经验分享请点击


相关文章:
【推荐】 谈谈数据库的跨机房容灾-网易云
【推荐】  360°透视:云原生架构及设计原则
【推荐】 SpringBoot入门(三)——入口类解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值