如何实现接口异常场景测试?测试方法探索与测试工具实现

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

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

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

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

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

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

方法探索

(1) 异常场景分析归纳

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

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

如何实现接口异常场景测试?测试方法探索与测试工具实现

(2) 方法探索

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

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

如何实现接口异常场景测试?测试方法探索与测试工具实现

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

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

应用实践

(1) 工具界面:

如何实现接口异常场景测试?测试方法探索与测试工具实现

(2) 实践示例

XX信息查询接口:

如何实现接口异常场景测试?测试方法探索与测试工具实现

(3) 应用实践情况

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

总结

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

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

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2024-03-06 18:09:06

Linux性能工具

2010-06-07 14:05:38

Linux串口测试工具

2011-05-31 18:09:05

动态测试

2009-06-26 10:22:58

JSF测试

2010-05-27 18:14:46

Linux测试工具

2010-05-27 18:04:06

Linux测试工具

2009-12-16 10:07:26

Visual Stud

2012-08-01 10:50:48

性能测试测试架构

2009-08-11 09:52:37

软件测试测试工具

2012-12-24 22:54:31

2017-09-19 18:34:16

Mysql数据库性能测试

2020-07-07 07:33:12

Java单元集成

2011-05-31 18:25:25

测试工具

2013-11-13 10:49:50

2009-03-31 09:49:40

Rational功能测试性能测试

2010-06-04 16:31:33

Linux网络测试

2014-07-01 10:09:01

2019-02-26 08:30:48

2023-12-27 07:35:29

HyBench数据字段

2018-01-10 14:57:56

点赞
收藏

51CTO技术栈公众号