PythonRequestsPyTestExcelAllure接口自动化测试怎么实现
更新时间:2023-12-26第一段:背景和环境准备
在进行接口自动化测试前,我们需要安装Python和相应的依赖库:Requests、PyTest、openpyxl和allure-pytest。这些库可以使用pip命令安装。接下来,我们将导入这些库,以及Excel文件,以及定义一些常量。
import requests import pytest import openpyxl import allure # 定义接口地址、Excel文件路径、Sheet名称等常量 BASE_URL = 'http://localhost:8000/' EXCEL_PATH = './api_test.xlsx' SHEET_NAME = '接口测试用例' ROW_START = 2
第二段:读取Excel文件并进行接口测试
我们需要编写函数,读取Excel文件中的接口测试用例,并将它们发送到接口地址进行测试。我们将使用openpyxl库来读取Excel文件。在函数中,我们使用for循环遍历所有测试用例,并使用requests库发送请求。如果响应的状态码等于预期的状态码,将测试用例标记为通过,否则标记为失败。
@pytest.fixture(scope="module") def api_data(): # 打开Excel文件并获取Sheet对象 wb = openpyxl.load_workbook(filename=EXCEL_PATH) sheet = wb[SHEET_NAME] api_list = [] # 遍历每一行,获取接口测试用例数据 for row in sheet.iter_rows(min_row=ROW_START-1): api = {} api['id'] = row[0].value api['name'] = row[1].value api['method'] = row[2].value api['url'] = BASE_URL + row[3].value api['headers'] = eval(row[4].value) api['params'] = eval(row[5].value) api['data'] = eval(row[6].value) api['code'] = row[7].value api_list.append(api) return api_list # 测试函数 @allure.epic("接口自动化测试") @allure.feature("API测试") @pytest.mark.parametrize('api', api_data()) def test_interface(api): # 发送请求 res = requests.request(method=api['method'], url=api['url'], headers=api['headers'], params=api['params'], data=api['data']) assert res.status_code == api['code']
第三段:运行测试并生成报告
运行测试用例时,我们可以使用PyTest库。我们可以通过以下命令来运行测试:
pytest test_interface.py --alluredir=./allure-report
运行完测试用例后,我们可以使用allure-pytest库来生成漂亮的测试报告。我们可以通过以下命令来生成测试报告:
allure generate ./allure-report -o ./allure-html --clean
第四段:总结
通过以上步骤,我们可以使用Python+Requests+PyTest+Excel+Allure来实现接口自动化测试。我们使用openpyxl库读取Excel文件,使用requests库发送请求,使用PyTest编写测试用例,使用allure-pytest库生成漂亮的测试报告。这种方法能够提高测试效率和质量,减少测试工作的重复性。