c语言编程笔录

首页 >   > 笔记大全

笔记大全

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库生成漂亮的测试报告。这种方法能够提高测试效率和质量,减少测试工作的重复性。