目录
引言
高效的接口测试是推动接口自动化的重要方面,本文介绍了接口自动化测试框架项目实战的方法,为接口测试提供了帮助。 需要注意的是,测试框架项目实战不仅需要能够理解接口的细节,还要有的测试理论基础。
在本文中,我们将使用Python和接口自动化测试框架来构建一个简单的API自动化测试项目。我们将使用一个公开的API来测试,这是一个RESTful服务,它提供了狗的图片和其他与狗相关的信息。我们将使用框架中提供的各种方法来执行请求和断言响应。我们的测试将涵盖以下方案:
-
GET方法:获取单个品种狗的信息。
-
POST方法:增加新狗的品种信息。
-
PUT方法:修改一个已有狗的品种信息。
-
DELETE方法:删除一个已有狗的品种信息。
为了开始这个项目,您需要安装以下软件:
-
Python 3.x。
-
PyCharm或其他Python IDE。
-
码尚接口自动化测试框架。
步骤1:安装接口自动化测试框架
接口自动化测试框架可以轻松地通过PIP安装。打开终端并输入以下命令:
pip install requests
pip install flaky
pip install loguru
pip install pytest
pip install pytest-html
pip install pytest-xdist
pip install tqdm
pip install xmltodict
pip install marshmallow
pip install gallow
步骤2:获取API密钥
我们将使用Dog API来测试我们的自动化测试项目。这是一个非常方便的RESTful服务,它提供了狗的图片和其他与狗相关的信息。我们将需要获取Dog API提供的API密钥。登录https://dog.ceo/dog-api/,单击“Get Your API Key Now”按钮。输入您的电子邮件地址,Dog API将向您发送一个API密钥。
步骤3:设置测试环境
我们需要设置测试环境。在PyCharm或其他Python IDE中,创建一个名为“test_dog_api”的新Python项目。在项目文件夹中创建一个名为“config.py”的新文件。在此文件中添加以下代码,使用您的API密钥替换'YourDogApiKey':
import os
class Config:
BASE_URL = 'https://dog.ceo/api'
DOG_API_KEY = os.getenv('DOG_API_KEY', 'YourDogApiKey')
步骤4:编写测试用例
我们将编写4个测试用例,分别测试API的GET、POST、PUT和DELETE方法。
在项目文件夹中创建一个名为“test_api.py”的新文件。在此文件中添加以下代码:
from framework import constants as const
class TestDogApi:
def test_get_random_dog(self, client):
response = client.get(f'{const.BASE_URL}/breeds/image/random')
assert response.status_code == 200
assert response.json().get('status') == 'success'
assert response.json().get('message') is not None
def test_create_new_breed(self, client):
data = {'name': 'BullDog', 'subBreeds': ['French', 'English'], 'location': 'UK'}
response = client.post(f'{const.BASE_URL}/breeds', data=data)
assert response.status_code == 200
assert response.json().get('status') == 'success'
assert response.json().get('message') is not None
def test_update_breed(self, client):
data = {'name': 'BullDog'}
response = client.put(f'{const.BASE_URL}/breeds', data=data)
assert response.status_code == 200
assert response.json().get('status') == 'success'
assert response.json().get('message') is not None
def test_delete_breed(self, client):
response = client.delete(f'{const.BASE_URL}/breeds')
assert response.status_code == 200
assert response.json().get('status') == 'success'
assert response.json().get('message') is not None
代码中我们使用了框架中提供的辅助方法,如client.get(),client.post(),client.put()和client.delete(),这些方法非常方便,因为它们自动设置请求头,处理响应和状态码,以及解析JSON响应。我们使用assert语句来断言我们的响应。这些断言包括我们测试的HTTP状态码和JSON响应的特定属性。
步骤5:运行测试
我们使用PyCharm或其他Python IDE来运行测试。我们还可以使用命令行工具运行测试。在命令行中,进入我们的项目文件夹,并运行以下命令:
python -m pytest -n=2 --html=report.html
这将并行运行测试,并生成名为report.html的测试报告。
结论
在本文中,我们使用Python和接口自动化测试框架来创建一个简单的API自动化测试项目。我们主要使用框架中提供的便捷方法来执行请求和断言响应。您可以尝试在测试用例中添加其他测试场景,以更好地了解如何使用接口自动化测试框架。
自动化测试学习步骤框架结构图:
小编还准备了一些福利: