接口测试实践与总结

发表于:2015-7-08 08:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:土司    来源:51Testing软件测试网采编

分享:
  多系统集成项目接口测试
  在互联网时代,任何一个系统都不能孤立存在,需要和其它系统进行交互。而在大部分情况下, 这种多系统之间的集群测试,很难等到所有项目都配置部署完成才进行测试,那么就需要模拟被测系统与其他系统的交互(如下图所示)。在模拟测试前,现需要整理分析其被测系统前置条件和被测系统发送的请求信息;在模拟系统接收到请求信息后,按照预先约定的信息下发通知给被测系统,被测系统接收到下发通知后,继续执行被测系统,完成一次测试模拟。通过多系统集群的模拟测试,提高系统的测试覆盖率。
  通用接口(比如web services等)测试和自定义对象格式接口测试
  通用接口(比如web services等)测试和自定义对象格式接口测试(如SDK接口等)这两种接口测试在本质上没有多大的区别,但其在测试实现和组织上会有一定的差异,在此不详细叙述。对于这两种测试,测试人员需按照协议规范设置需要的测试输入输出参数,然后按照约定的请求格式发送请求,然后在比对测试结果。对于这类测试,如果在接口比较少的情况向,建议使用测试代码直接测试;而对于接口较多,使用较为频繁,根据情况可以开发测试工具或者自动化工具;对于使用自动化测试来说,其难点是如何组织设置接口的前置条件,所以说对于这类测试建议最好使用测试工具而不是自动化测试。
  强交互类系统接口测试
  3.  接口收获与经验
  通过对接口测试使用自动化后,对server的测试带来很多收获。
  1.     自动化测试使得测试覆盖率提高10%,通过自动化测试实现了一些原来不能测试的用例:比如心跳,强制短信、短信回复、消息稳定率(7*24)测试、电量、内存等长时间测试。
  2.     测试效率提升50%:自动化测试覆盖核心用例和单功能用例实现100%覆盖,重要功能70%以上覆盖,总体覆盖达53%;在测试执行中,BVT用例、灰度测试以及版本任务测试(版本任务实现手工测试与自动化测试统一管理,协调工作);通过测试实践得出整体测试效率提升50%以上(说明:测试脚本在开发单模块时一次完成,对于协议测试不需要维护成本。
  3.     通过自动脚本整理,自动化测试脚本描述的业务逻辑分析,其业务描述已成为公司最新最全的业务资产库。通过对业务逻辑分析,优化逻辑,大大提升了软件质量,比如会话通过业务分析优化消息成功率从99.9%提升到99.987%
  在接口测试过程中,怎么像测试人员证明其测试结果是可信的,怎样才能保证实施自动化过程中不增加测试人员的工作量和不改变测试人员原有工作模式。这些都是考验自动化测试是否能够成功的最主要因素。
  在自动化测试过程中,如果保证测试结果正确性,在测试实践中有几条我认为比较好的经验。
  1.    测试脚本评审:在编写自动化测试脚本后,每个测试脚本必须通过评审。测试脚本评审虽然不能保证测试脚本完全正确,但至少可以查出一些比较明显的业务逻辑,同时也是使其参与评审测试人员在内心不会对测试脚本的质量感到恐慌和不信任。在评审过程中有几点要注意:1.尽可能的让评审业务相关的测试人员参与;2.每次评审时间不超过1个小时,时间过程容易流于形式;3谁提出问题,谁负责审查。
  2.     定时任务检查:通过评审的信令场景加入定时任务,连续运行监测其正确性。在其定时任务执行过程中,一般会连续执行一个月,每天会安排固定人员对测试结果进行分析验证(一般会安排参与评审的业务人员,分析时间一般不超过30分钟)。对于在连续一周以上且通过率高于93%的任务,安排进行与版本同步测试验证其正确性。
  3.     与测试版本同步:在版本测试任务同时,进行自动化测试,检查其脚本的正确性。
  4.     测试交付:通过评审,最近两周定时任务连跑中通过率超过95%,IM基础功能和测试模块,在版本任务中测试验证过两次以上
  在自动化测试过程中, 尽可能不改变原有测试流程,比如我们在飞信业务测试过程中,自动化测试时结合原有流程(如下图)
  1)   自动化测试用例和手工测试用例实现一管理,在编写用例过程中,直接从测试工具中导入用例到自动化平台,同时在测试管理工具中标示出改用例已自动化实现。
  2)   在有版本任务分过来后,在测试平台建立测试任务,同时自动在自动化平台生成一个测试计划。
  3)   测试人员只需要测试自动化没有实现的测试用例,自动化测试执行自动化实现的用例,在执行完成后把测试结果自动导入到测试平台。
  4)   测试人员根据测试结果编写测试报告
  在自动化测试过程中要结合业务进行一些定制化的测试,比如在飞信测试项目中,根据其特点建立了数据池及灰度测试策略和二次连跑机制
  账号池及灰度测试::通过统一账号管理,实现对不同账号的管理(不同环境的账户、不同site的账户管理),通过执行策略,分账户实现功能之间灰度测试
  二次连跑:针对协议测试的不确定情况,设置了连跑模式,可以设置不同的连跑模式(连跑、二次连跑、直到通过等)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 紫电青霜OK
    2015-7-16 18:02:31

    本人新手,请大神,帮帮忙。

    .net  WebAPI自动化测试应该怎么做,还要方便以后做回归测试。   改用什么工具,什么框架呢?      


    比较着急,找了好长时间资料了,一直没找到满意的。

  • xuning556
    2015-7-16 13:16:06

    总结的很清晰

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号