RobotFramework实现Http接口测试_软件测试

一、什么是HTTP接口测试

RobotFramework实现Http接口测试_测试工程师_02

先上图,如图是一个web项目常见的工作原理(当然还有其他层,这里先忽略)。

功能测试:

从前端browser测试功能是否符合需求(验证了前端+部分服务端)。

而我们所要做的接口测试,就是绕过真实的前端,虚拟一个前端,对服务端进行测试,验证服务端是否满足需求(验证服务端)

问题1:为什么说功能测试服务端验证是部分呢?

问题2:那么做接口测试的好处有什么呢?

二、接口测试的流程

接口测试的流程其实和功能测试的流程类似,因为都是依赖需求说明书,验证功能是否符合需求。

接口流程:需求讨论->需求评审(产出需求说明书)->开发进行设计(产出接口定义文档)->测试用例设计(依据前两个文档)->用例评审->开始测试(开发完成接口,这里如果是部分完成,可能会需要用到MOCK)

如上,测试用例设计是在开发完成之前设计,所以如果有能力的话,可以提出针对设计的建议,如状态码、响应正文、错误提示等的规范,增加可测性。

三、接口测试测什么

可对比前端功能测试,思考测试内容。

  • 1、功能测试(正例):验证接口是否满足所需要提供的功能。验证正确入参请求的情况下,状态码、返回值、DB变化(DB这块视团队情况定是否验证,因为在做前端功能测试的时候也可以验证)等是否正确
  • 2、入参异常(反例):类型异常、长度异常、是否为空异常、传null、参数不传、边界值、无效值
  • 3、逻辑测试(其实应该单元测试做):验证内容逻辑是否正常
    校验测试:验证正、反例的情况下,消息报头(cookies、status_code等)、响应正文、DB是否正常

PS:以上,属于测试时间、对产品熟悉度、对数据库熟悉程度、接口文档等维度都完美的情况下,测试case设计的粒度!

但是大多团队,经常以上的维度都是有所欠缺,或者是内部项目之类,case没必要设计到那种粒度。所以测试case设计的粒度可根据实际情况酌情调整。

四、测试数据准备

可对比功能测试,分两种情况

  • 1、测试的模块无前置模块:直接动手,该用什么数据就写什么数据。
  • 2、测试的模块有前置模块:获取前置数据的相关信息,其他同无前置模块的。

前置数据常用准备方法:

  • ①通过前置模块的API生成数据
  • ②在执行前,在数据库初始化插入数据
  • ③一开始就准备好数据,执行后,对数据进行还原

PS:接口中可能会有一些唯一值字段,需要对其进行处理

五、选用Robotframework的考虑

测试方法比较多,接口测试工具、测试框架不少。

根据项目、团队实际情况,期望选择的方式可以有以下特点:

  • 1、结果可断言(无需人工再介入)
  • 2、良好的报告展示
  • 3、易入手(团队里大多数测试成员不会测试开发)
  • 4、可移植性高
  • 5、现成的框架(性价比高,自己写底层重复造轮子太浪费时间)
  • 6、可二次开发(针对实际项目做二次封装)
  • 7、底层可添加、修改(针对实际项目情况做自定义库)
  • 8、可做数据分离(可见性好,通过合理的架构设计,再次降低功能测试介入难度)
  • 9、支持做

六、接口测试实现

接口测试实现部分,以大型项目中的实践来做说明

内容较多,在后面分篇说明。

另外有需要学习测试的朋友可以加我们的群(785128166),里面有各种测试资源,视频教程,面试题目,PDF教程,还有技术大牛答疑解惑。

RobotFramework实现Http接口测试_软件测试_03


更多好文推荐:

​python教程——目录!
点进来,干货满满!!!​

​软件测试笔记——目录!
都是学习笔记!!!​

​怎样玩转Python?
好文推荐​