美文网首页百人计划
接口自动化测试之用例结构设计(三)

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

作者: 伍个一 | 来源:发表于2020-07-02 01:13 被阅读0次

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

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

    1.用例结构设计初衷

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

      1. 如果说一个模块,十个接口的用例超过了100条,200条,300条,那么操作体验来看,哪一种存储形式比较容易接受?
      2. Excle的推广程度,学习成本,上手速度,相较于其他的有优势
      3. 后期扩展,无论是PyQt做成桌面应用,还是做成WEB平台,操作形式上的相似度是比较高

    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信息文件
    用例配置,针对于项目情况,用例运行的说明
    用例配置

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


    接口用例

    相关文章

      网友评论

        本文标题:接口自动化测试之用例结构设计(三)

        本文链接:https://www.haomeiwen.com/subject/yqakqktx.html