跳转至

接口自动化测试

目标

上节课,我们 手工执行 了接口测试用例 。

利用Python程序发送 HTTP 请求消息,打印出响应消息。然后人工检查是否用例里面的预期结果相符。

这只是手工测试,我们要自动化测试,必须把用例的所有步骤全部自动化实现。

这包括,用程序实现 :

  • 预置条件中数据环境的构建

  • 测试步骤中的测试动作,比如 发送HTTP消息给被测系统

  • 预期结果中的检查,比如 对返回HTTP响应消息中 数据的检查



自动化测试系统的开发,需要挑选一款合适的框架,这里我们用 白月黑羽 自行研发的 hytest。

对 hytest 不了解的朋友,点击这里学习 hytest 教程


注意:后面的视频讲解中使用的是 hytest 的上代产品 黑羽robot, 和hytest用法大体类似。hytest 更加简单,无需手动下载。

自动化系统目录结构

我们先实现用例 API-0151 的自动化,请大家点击这里,看视频讲解

该视频对应的最终项目代码,点击这里下载



我们再实现用例 API-0152、API-0153 的自动化,请大家点击这里,看视频讲解

该视频对应的最终项目代码,点击这里下载

注意视频讲解中,当代码出现了错误,我们是怎么调试错误的。



现在我们实现了3个用例,一起执行一下看看,有没有问题?思考一下

请大家点击这里,看视频讲解

该视频对应的最终项目代码,点击这里下载

看完视频后,我们要记住的重点是:

  • 自动化用例的目录结构,最好 按照 数据环境 规划

  • 下层目录会继承上层目录的 数据环境

配置文件

我们注意到,webapi.py 库文件里面 发送API 请求,都是写死了 请求的 url ,比如

print('登录')
response = self.s.post("http://127.0.0.1/api/mgr/signin",

...

print('列出客户')
response = self.s.get("http://127.0.0.1/api/mgr/customers",

...

print('添加客户')
response = self.s.post("http://127.0.0.1/api/mgr/customers",

这样做的问题是,如果我们测试系统安装在另外的机器上,这些代码都得更改IP地址。

所以,我们应该把被测系统的主机地址写在配置文件 cfg/cfg.py 中,如下所示

target_host = '127.0.0.1'

然后,其他代码使用配置文件里面的主机地址,像这样

from cfg import cfg

print('登录')
response = self.s.post(
    f"http://{cfg.target_host}/api/mgr/signin",
    data={
        'username': username,
        'password': password
    }
)

您需要高效学习,找工作? 点击咨询 报名实战班

点击查看学员就业情况