百人计划

接口自动化测试之用例结构设计(三)

2020-07-02  本文已影响0人  伍个一

前面和大家探讨了编写测试用例的方法,设计框架的思路:导出用例,执行用例,收集用例结果。

这篇文章和大家聊一聊用例结构设(建议自己动手写过一个接口自动化之后再一起来探讨),否则不明白一些做法的初衷

1.用例结构设计初衷

陈述几个问题,大家可能觉得Excle存储用例比较low,没有yaml,sql存储的高大上之类的

1.1常见用例结构

关于编写接口用例的方法已经陈述过了,如果还有不清楚的,请转:接口自动化之测试用例设计(一) 。然后,大家就可以愉快的编写测试用例的,但是就有了另外一个问题,接口用例应该是什么样子的?这里取了一个培训机构常见的接口用例模板

常见用例结构

上面的模板看起来怎么样?不知道大家日常使用的模板是不是和上面的差不多?

1.2 使用中的问题

我刚接触上面的模板的时候没感觉到有什么问题,接口信息,请求方法,请求数据,入参等字段,的确是接口测试必要的信息。

1.2.1. 重复字段太多

其实在一个项目中项目地址,同一个接口的API信息等。

1.2.2 请求参数过多

像图示中的两个参数,看起来没什么问题,但是如果是一个大型的表单提交接口呢?参数可能高达50多个左右,都放在一个单元格内,怕不是一屏都不够哦

1.2.3 整个用例庞大

接口的用例相较于功能用例还要多出一部分,如果都在一个标签页里,500条用例,编写,查找起来相当不便

前段时间拜访了用户,咨询一下新系统(ERP类型)使用情况。系统功能完善,UI清爽,很符合用户的预期。但是有一点,录入信息的时候干扰项太多,用户操作起来十分不顺手。总的来说,系统是给用户使用的,怎么方便,怎么来。

自动化用例是给我们自己设计的,怎么操作简单怎么来,从上面的Excle用例来看,是不符合我们日常使用的。

2.用例结构设计

根据上面操作不便的问题,分别进行处理并附以用例更多的功能。

2.1 重复字段太多

重复字段太多,项目地址,同一个接口的API信息等。

那么,怎么来解决这个问题?我们另行维护一份自己需要的接口信息文档,然后需要用到的时候进行读取即可。


用例拆分示例

也就是把上面圈起来的内容,拆分出去,另行维护


接口信息拆分示例
拆分后的用例如下所示,界面看起来是不是清爽许多?
拆分后的用例

2.2 请求入参,参数过多?

例如上图中参数过多的情况,一个单元格内看起来是不是十分臃肿?如果某个添加接口有50个参数,那展开的话,一屏都看不完整。(可能有的人会说,超出单元格隐藏,可以试一试隐藏后的效果哈)


参数过多示例

想解决这个问题,其实也很简单,通常情况下,测试用例是保持单一验证的情况。
也就是说,就算有50个参数,那么其他一条测试用例中只会有测试点的参数,其他参数通常保持不变的。
这样子的话,就可以用模板数据,然后在用例中编写变量就好


模板数据

2.3 用例数量庞大?

模块区分,如果都在一个标签页里,500条用例,编写,查找起来相当不便。解决办法:根据模块来聚合用例,然后查找方便
(举例:
一个模块,20个api,400条case,那么也就像上面的400多行)


区分示例

2.4 断言设计

想要在Excle去做断言,其实有点难处理,根据响应文本去直接比对?但是有时候需要比对code,message,data等参数,这里借鉴了JMeter的响应结果树,根据规则去匹配:

{
    "code":"",
    "message":"",
    "data":{
        "key":"value"
    }
}
断言示例

2.5 用例附属信息

测试用例的测试版本,用例执行人员,项目配置信息(服务地址,数据库地址等),用例执行时间,备注等


其他信息

那么现在的由一份Excle接口用例,进行自己的加工之后,用例结构如下:


image

demo示例如下,API配置文件第一阶段以手动维护为主,根据实际项目进行扩展(自动生成)


API信息文件
用例配置,针对于项目情况,用例运行的说明
用例配置

实际编写的测试用例,界面是不是很清爽?


接口用例
上一篇下一篇

猜你喜欢

热点阅读