• 3
  • 3
分享

  背景:随着前后端分离、微服务等技术的广泛应用,接口测试在整个测试过程中扮演的角色越来越重要,如何更加高效地把接口测好、测得更加充分就成了一个亟待解决的难题。

  当前在对具体的某一接口进行测试时,普遍采取的方法是测试人员按照接口文档中的字段取值规则使用接口测试工具(例如Postman等)手工来回修改接口报文中的某一个字段值来进行测试。

  这种方法对于单个或者是简单接口相对比较友好,然而往往一个系统中会包含有大量的接口、接口逻辑复杂、接口里边包含有非常多的字段,这就给接口测试的开展带来了很多问题,比如费时费力、工作量大、漏测某些测试场景等。

  同时还由于项目工期紧张等原因,在接口测试过程中一般更多的是关注正常场景是否有实现,相较于异常场景的重视程度就不够,从而极易由此引发相关测试问题。

  因此,为了减少此类情况发生,针对这一问题进行了探索和实践,总结了相关方法,并将其应用到了多个项目,起到了很好的效果。

  方法探索

  异常场景分析归纳

  在对当前接口测试中异常场景测试的相关情形进行分析并总结归纳后,发现可以大致将其分为基本异常场景和特殊异常场景两大类,其中基本异常场景对具体接口中每个字段均适用,特殊异常场景只适用于特定的接口字段。

  具体分类和示例如下图所示:

1-1.png

  方法探索

  结合上述异常场景的分析归纳以及当前测试接口测试的实际开展情形,对于接口异常场景的测试可以将相关的重复工作通过工具流程固化下来,通过工具自动对其进行测试以减少重复劳动,进一步提升测试效率。

  接口异常场景测试工具技术实现

1-2.png

接口异常场景测试工具流程图


  如以上流程图所示,技术实现整体思路为:首先是将待测接口的接口配置等相关信息作为输入,然后对其进行解析并匹配相关异常场景,其次是对匹配到的异常场景生成对应的接口测试用例以及测试脚本,最后是脚本执行生成相对应的测试结果。  

  应用实践

  工具界面

1-3.png

  实践示例

  XX信息查询接口:

1-4.png


  应用实践情况

  目前该方法和工具已推广应用到多个项目多个接口,累计生成千余条异常场景测试用例,发现多个测试缺陷,平均将工作量缩短至原来人工测试时的三分之一,测试效率和测试质量提升效果明显。

  总结

  虽然目前已经在多个项目得到了应用,也取得了一定的效果,但是在应用实践过程中,也遇到了诸多问题,例如:目前支持的异常场景相对有限、接口文档的形式不统一(excel、word等)、各系统的接口格式多种多样,但目前仅支持http-json类型的接口测试等,后续将对这些问题逐一分析解决。

  此外,在特殊异常场景方面还需要进行更加深入的探索,可以通过该方式将更多的测试经验和特殊异常场景固化下来纳入到工具流程中,再通过自动化生成和执行对应用例,从而节省时间、精力,减少测试人员在这方面的投入,将更多的精力投入到其他相对更加重要的测试中,进一步提升测试质量和效率。



作者:王海林   

来源:http://www.51testing.com/html/28/n-7789528.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   KYM  KYM是Kown Your Mission的简称,顾名思义,就是帮助用例设计人员梳理测试任务的过程,它是一种系统的收集和整理测试启发的框架。  在接触一些新事物或者面对一些新问题时,人们往往更关注问题本身,也就是what,而忽略了问题产生的原因(why)和途径(how),就像用例设计人员做设计时上来就直接写用例,即使是有丰富经验的测试大佬,也难免在直接写用例时遗漏一些测试点。  因此作为测试人员更应该具备why=>how=>what=>when=>who的测试思路来更加深入地了解测试对象。  KYM模型在实际用例设计过程中从用户、项目/产品、任务三个维度对...
            0 0 1397
            分享
          • 自 5 月 9 日 Cloud 版正式上线,Dify.AI  受到广大开发者们的喜爱与分享传播。在不到一周时间内,创建的应用数已超过 4000+,甚至在只有一个 README 的情况下,GitHub Star 数已超过 700+,这让我们深切感受到社区力量的强大!同时,也为 Dify 能给开发者们带来如此强大的创造力而感到无比荣幸和激动。现在,万众期待的开源版本来了!3 月 1 日写下第一行代码至今 2 个多月,共计 46,558 行代码,已完全开源在 GitHub。(值得一提的是,其中大约 30% 的代码是由 GPT 生产。)GitHub 项目地址:https://github.c...
            0 0 1360
            分享
          •   一、什么是自动化测试框架?  自动化测试框架是为自动化测试用例或者脚本提供执行环境而搭建的基础设施。自动化测试框架有助于有效地开发、执行和报告自动化测试用例。  优点:  · 代码复用  · 提高测试效率  · 更高的测试覆盖率  · 维护成本低  · 更早发现和记录bug  二、框架的基本组成  1、配置文件管理:  一般需要一个配置文件去控制一些环境信息、开关。配置文件可以是txt/xml/yaml/properties/ini,一般.propertis使用较多在JAVA里,Python的话通常会选择ini文件。  2、业务逻辑代码和测试脚本分离...
            0 0 1068
            分享
          • 目录一、输入框二、搜索功能三、添加、修改功能四、删除功能五、注册、登录模块六、上传图片测试七、查询结果列表八、返回键检查九、回车键检查十、刷新键检查十一、直接URL链接检查十二、界面和易用性测试十三、兼容性测试十四、链接测试十五、业务流程测试(主要功能测试)十六、安全性测试十七、性能测试十八、测试中应该注意的其他情况一、输入框1.字符型输入框:(1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符 “~!@#¥%……&*?[]{}” 特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。(2)长度检查:最小长度、最大长...
            1 10 7153
            分享
          • 学习内容:数据库应用系统(DBAS)性能指标:数据操作响应时间(数据访问响应时间);系统吞吐量:指系统在单位时间内可以完成的数据库事务或查询的数量;允许并发访问的最大用户数;每TPS代价值。数据库管理系统(DBMS)系统需求分析的常用建模方法一、DFD(数据流图,Data Flow Diagram)DFD图采用自顶向下逐步细化的结构化分析方法四种基本元素:数据流、处理(对数据的加工)、数据存储、外部项数据流:指处理功能的输入输出,用→表示;数据存储:数据保存的地方,表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等;处理:对数据的逻辑处理,也就是数据变换,用来改变数据值;外部项(外...
            0 0 1591
            分享
      • 51testing软件测试圈微信