首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试、安全性测试。

在学习接口自动化测试之前,我们先来了解手工接口测试怎样进行。

URL组成

为了更好的理解接口测试,我们需要对接口的URL有所了解,下面以GET请求URL为例,组成示例如下:

python+pytest接口自动化(3)-接口测试一般流程及方法-LMLPHP

通过上图可以看出来,一个典型的GET请求的URL可以分为以下几个部分:

  • 传输协议:工作中接触到的接口一般是http/https协议

  • 服务器域名/IP地址:指提供接口的系统所部署的服务器地址

  • 端口:不填则默认端口为80

  • 资源路径:请求资源所在的服务器路径

  • 请求参数:对于GET请求,参数在资源路径后,用?分隔,参数之间用&分隔。

    http://127.0.0.1:8080/message?wd=pytest&ie=utf-8,有2个参数 wd、ie。

POST请求的URL与GET请求URL不一样的地方在于,POST请求参数是放在请求body里而非直接放在URL里。

接口测试流程

手工接口测试的流程如下:

  1. 查看需求文档及接口文档,明确测试内容即接口信息。

  2. 根据需求文档及接口文档,编写测试用例。

  3. 根据测试用例执行测试。

  4. 记录测试结果,发送接口测试报告(如果需要)。

接下来以一个登录接口为例来讲解接口测试的流程。

接口文档

对接口进行测试,首先要明确接口的具体信息:请求url、请求方式、请求头、请求体 (字段及说明)、响应体 (字段及说明)。

通过开发提供的接口文档可以查看这些信息,然后再根据接口信息设计测试用例 (接口测试用例的设计主要参考接口文档)。下面示例为一个登录接口的接口文档:

python+pytest接口自动化(3)-接口测试一般流程及方法-LMLPHP

从这个接口文档我们可以看到接口相关的具体信息,但这个文档里没有对请求头Header做说明,所以请求的时候对请求头也不做要求。

用例设计

用例设计方法

设计接口测试用例时,要从考虑输入、逻辑处理、输出三方面考虑:

  • 输入,根据是否必填、参数类型、字节长度、参数组合等设计用例
  • 逻辑处理,即按照业务逻辑设计用例
  • 输出,即根据输出结果分析并设计用例

除了正向校验功能是否实现外,还应根据业务场景及处理逻辑,考虑一些异常场景,如:

python+pytest接口自动化(3)-接口测试一般流程及方法-LMLPHP

用例编写工具

用例设计的载体有很多种,如Excel,XMind,或一些测试管理平台如testlink等,符合自己习惯、方便管理、一目了然就行。

如果用Excel来设计测试用例,可以参考如下原则:

  • 一个模块对应一个Excel表

  • 一个接口对应一张sheet表

  • sheet表中一行对应一条测试用例

  • 注明前置条件、后置操作。如登录用例需要先注册用户,测试完成后可能需要删除这个用户,这个时候可以把对应操作写进去。

针对上面的登录接口,使用Excel设计测试用例如下:

python+pytest接口自动化(3)-接口测试一般流程及方法-LMLPHP

测试执行

执行接口测试的方式有两种,使用工具或编写代码,工具如:postman、soupUI等,编写代码则一般使用Java、Python。

根据测试用例进行接口测试,手工接口测试一般情况下推荐使用postman进行,方便快捷。

这里以上面的登录接口为例,使用postman进行请求测试,示例如下:

python+pytest接口自动化(3)-接口测试一般流程及方法-LMLPHP

测试结果

测试结果直接记录在测试用例对应的测试结果列里,如果需要提供测试报告的话则需将所有用例测试情况整合在测试报告中。

总结

一般的接口测试其实就属于功能测试,这里我们以手工接口测试为例进行了流程说明。接口自动化测试的步骤其实跟这个流程差不多,只是需要使用脚本代替接口调试工具。

03-06 16:15