处于软件开发进程里, 不可或缺的其中一环是接口自动化测试, 它可提升测试效率, 能降低人工成本, 能够及时发现潜在问题。作为在语言里被广泛运用的测试框架具有简单易用、灵活强大的特性。本文会借由一个实战案例, 去介绍怎样运用来开展接口自动化测试。
一、环境搭建
第一, 要保证你所处于的开发环境里已然安装了pip。接着, 借助以下这般命令对相关插件予以安装:
pip install pytest requests
在这里, 我们安装了库, 还安装了插件。这个库, 是用来发送HTTP请求的。而那个插件, 则能够提供方便的断言功能。
二、测试用例编写
接下来, 我们去创建一个名字是.py的测试文件, 然后来编写第一个测试用例。假定我们要对一个简单的用户管理接口展开测试, 该接口涵盖创建用户、获取用户列表以及删除用户的功能。
创建用户接口测试用例:
def test_create_user():# 发送POST请求创建用户response = requests.post('http://localhost:5000/api/users', data={'username': 'testuser', 'password': 'testpass'})# 断言状态码为200assert response.status_code == 200# 断言返回的数据中包含新创建的用户信息assert 'testuser' in response.json()['username']
获取用户列表接口测试用例:
def test_get_user_list():# 发送GET请求获取用户列表response = requests.get('http://localhost:5000/api/users')# 断言状态码为200assert response.status_code == 200# 断言返回的数据中包含至少一个用户信息assert len(response.json()) > 0
删除用户接口测试用例:
def test_delete_user():# 发送POST请求创建用户response = requests.post('http://localhost:5000/api/users', data={'username': 'testuser', 'password': 'testpass'})# 断言状态码为200assert response.status_code == 200# 发送DELETE请求删除用户response = requests.delete('http://localhost:5000/api/users/testuser')# 断言状态码为200assert response.status_code == 200# 发送GET请求获取用户列表,断言返回的数据中不包含被删除的用户信息response = requests.get('http://localhost:5000/api/users')assert 'testuser' not in response.json()['username']
在上面所呈现的代码里头, 我们借助库去发送HTTP请求, 并且运用所具备的断言功能针对响应结果开展验证。于实际的项目当中, 你有可能需要依据具体的接口文档以及业务逻辑来编写更为复杂的测试用例。需要留意的是, 当编写测试用例之际, 应当遵循单一职责原则, 每个测试用例仅仅关注一个功能点。
三、测试执行
当把测试用例编写完成之后,我们能够运行以开展测试。将终端打开, 进入到装有测试文件的目录, 运行如下命令:
pytest test_api.py
把自动化扫描.py文件里的测试用例找出来, 接着去运行符合条件的测试函数。在运行的这个过程当中, 会给出详细的测试结果以及日志信息, 借由这个来帮我们弄清楚测试的状况。要是所有的测试用例都通过了, 那就表明接口功能是正常的;要是有测试用例没通过, 那就表明存在潜在问题得要去修复。