RobotFrameWork编写接口测试及如何断言

1. 前言

    本篇是第一系列(Http接口自动化)的第五课程,若是对系列课程大纲不清楚的,能够查看《RobotFramework系列免费课程-开课了~》git

前面咱们介绍了,在真正实施前,需先定好多人协做过程当中约定的接口用例规范,以及开始时,接口项目如何结构化分层,那么今天,咱们来聊聊,用RobotFramework如何编写接口用例及如何对用例断言。后端

 

2. 开始前的准备

    

    在写接口用例前,除了前面几节介绍的接口框架环境准备、接口用例规范的制定、项目分层这几点外,在真正开始写用 例以前,还有一环节是必须的,就是拿到接口的开发文档,能够理解就是一份接口的契约文件。微信

    

接口开发文档获取通常来说,直接找对应接口开发的人员拿就能够了,这种方式虽然最简单直接,但在这里笔者并不推荐,正确提倡的作法,在每次接口提测时,须要由开发人员提供提测单且在提测单中,注明详细的提测要求,注意事项以及接口文档地址等,整个流程能够用gitlab完美串连起来,既想要的内容有了,并且流程也规范了。app

 

注:之前笔者的公司接口开发文档以md格式编写,在gitlab上以版本管理的形式进行集中式管理。框架

 

 

3. 接口编写套路

 

3. 一、分析接口文档

本文用上述截图的接口为例:【获取热门做品列表 get /mfx/play/cdn/opus/getHeatValueOpusList】gitlab

由上图可知,该接口以下信息:学习

接口做用:获取某app首页热门做品列表测试

接口类型:Getui

接口入参:2个,page(第几页)、pageSize(一页有多少个)加密

接口响应:为Json串,详细自行查看。

 

3.二、设计接口用例

按照以前介绍的《RobotFrameWork接口设计规范》中可知,常规接口在设计用例时,至少需包括三类,常规值用例、异常值用例、接口数据校验用例:

 

3.3 、写接口用例

数据准备(接口入参)-> 构造请求-> 响应断言

 

3.3. 1 准备数据(接口入参)

 

看过我以前的文章就知道,这里说的准备数据,对应的就是RobotFramework中的测试用例层(以前强调过在RF中,用例中尽可能只存放接口入参数据)

 

 

3.3.2  构造请求

 

构造请求应该来讲是整个接口用例流程中的最难的点,由于公司为了防止第三方随意刷接口或者破坏接口,都会根据产品后端特性,对请求设置各种加密方法,通常来说,须要知道产品私钥key及加密流程和方法。

 

 

3.3.3  响应断言

 

拿到请求返回的响应体后,根据所需,校验指望的数据是否存在响应体中,一般最多见的就是校验预期的code值是否包括在响应返回数据中。

 

 

 

4. 接口用例如何断言

 

接口用例设计好以后,如何能让用例能发挥价值主要取决于断言如何来写,接口自动化用例的最终目的是经过接入研发体系的CI持续集成中,经过接口每日巡检尽早地发现因接口变动致使的异常 。那么如何发现异常 ,简单来讲,就是指望接口返回的数据与接口实际返回的数据不一致。而这个过程就须要经过合理地在接口用例中使用断言来实现。

 

那么有人会问,接口断言我加了啊?不就是校验接口返回的code值是不是成功的吗?我相信至少有一部分人在设计接口用例断言时,只有且仅有校验接口的返回code值,虽然code值的断言是须要的,但不能仅仅只经过这一种断言方式来作为接口是否有异常的判断依据。

 

那么接口断言,须要有几种呢,从上面接口用例设计的截图中你们也能看出,通常来讲至少须要有三种:正常code断言(正常返回的code值)、异常断言(异常的code值和异常的msg错误信息)、接口关键数据断言(校验具体返回的数据字段值)

 

4.1 正常code断言

 

 

4.2 异常code、msg断言

 

 

4.3 接口数据断言

 

 

小技巧:

一、接口数据断言时,能够不须要用具体的值进行比较,好比想判断歌曲id返回,不须要拿具体的sondId的值与xxx数值进行比较,由于对于这类返回的字段来说,歌曲id都会要求是大于0的数值,因此断言时比较返回的数据是不是大于0便可,对于返回的字符串字段而言,好比userLogo用户头像字段,好比返回的userLogo用户头像数据不为空便可。固然若是有些特殊场景,须要用具体的数值比较,可另当别论。

 

二、字段数据校验常规的作法是把所需的字段的值先取回来,再对每一个字段的值加断言比较,那么若是返回的响应体,字段比较多,好比有几十个返回的字段,那这个工做也是很是耗时的。这里推荐的作法是能够写一个公共数据递归校验方法,好比:

 

 

 

5. 教程目录大纲(已更新)

RobotFrameWork系列免费课程大纲介绍

RobotFrameWork环境搭建(基于HTTP协议的接口自动化)

RobotFrameWork接口设计规范

RobotFramwWork接口项目分层及通用控制方式

 

6. 下节预告

《RobotFrameWork测试数据管理》

 

 

详见可:阅读原文

 

如想更深刻学习RF接口设计内容或有疑问可给笔者留言

或加笔者微信号: jinjian_762357658

相关文章
相关标签/搜索