使用python、pytest、allure、Excel实现批量执行接口

这篇博客介绍了如何利用Python进行接口测试。首先,通过pip安装必要的库如requests和pytest。接着,从Excel文件中读取接口信息,并创建一个类来获取数据。然后,创建一个请求接口的类,根据GET或POST方法发送请求并记录状态码。最后,编写单元测试,生成测试报告,使用pytest和Allure框架,确保测试结果可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 需要执行命令来进行下载对应的文件

        pip install requests

        pip install pytest

        pip install allure-pytest

1、我们需要在Excel文档中填写对应的接口和参数和提交方式,需要把接口文档放在data文件夹中

 2、创建一个文件用来读取Excel

 3、写入代码

from openpyxl import load_workbook
class UseExcel():
    def get_TestExcel(self):
        # 打开表
        workbook = load_workbook('../data/接口.xlsx')
        # 定位表单
        sheet = workbook['Sheet1']
        print(sheet.max_row)     #3 行
        print(sheet.max_column)  #3 列
        test_data = []#把所有行的数据放到列表中
        for i in range(2,sheet.max_row+1):
            sub_data = {}#把每行的数据放到字典中
            for j in range(1,sheet.max_column+1):
                sub_data[sheet.cell(1,j).value] = sheet.cell(i,j).value
            test_data.append(sub_data)#拼接每行单元格的数据
        return test_data
t = UseExcel()
f = t.get_TestExcel()
print(f)

 4、我们需要创建用来请求的接口的文件

        需要执行命令   pip install requests  下载对应的文件

import requests
from readdata.readdataxlsx import UseExcel
u = UseExcel()
lists = u.get_TestExcel()
litm = []
class Testxlsx:
    def testxlsx(self):
        for xlsx_i in lists:
            if xlsx_i.get('tijiao') == 'get':
                r = requests.get(url=xlsx_i['ual'],params=xlsx_i['sj'])
                litm.append(r.status_code)
            else:
                r = requests.post(url=xlsx_i['ual'],data=xlsx_i['sj'])
                litm.append(r.status_code)
        return litm
t = Testxlsx()
print(t.testxlsx())

5、创建我们的单元测试的文件,编写单元测试并且生成测试报告 

import pytest,os
from test_case.requxlsx import Testxlsx
t = Testxlsx()
lists = t.testxlsx()
class Testxls:
    def testxlsx(self):
        for xlsx_i in lists:
            assert xlsx_i == 200

if __name__ == '__main__':
    pytest.main(['--alluredir', 'report/result', 'test_xlsx.py'])
    split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'
    os.system(split)

6、执行成功会出现一个文件夹,我们点击index用浏览器进行访问,就可以看到我们的测试报告 

### 配置和使用 Pytest 和 Jenkins 进行 API 接口自动化测试 #### 项目结构设计 为了有效地管理和执行API接口自动化测试,合理的项目结构至关重要。一个典型的自动化测试工程项目目录结构如下[^2]: ``` project_root/ ├── config/ │ └── config.ini ├── logs/ ├── reports/ ├── testCases/ │ ├── conftest.py │ ├── test_user_api.py │ └── ... ├── utils/ │ ├── logger.py │ └── ... ├── .gitignore ├── requirements.txt └── README.md ``` 此结构有助于分离不同的组件,使得代码更易于维护。 #### 安装依赖包 确保安装必要的Python库来支持项目的运行。`requirements.txt` 文件应包含所有必需的第三方库列表,如 `pytest`, `requests`, `allure-pytest` 等等。可以通过pip工具批量安装这些依赖项: ```bash pip install -r requirements.txt ``` #### 编写测试用 编写具体的测试用文件位于 `testCases/` 下面。对于每一个待测的功能模块创建对应的 Python 脚本文件 (如 `test_user_api.py`) ,其中定义了多个函数用于验证特定的行为逻辑。可以采用参数化的方式读取外部的数据源(比如 Excel 或 JSON),以便灵活调整输入条件并覆盖更多场景[^1]。 #### 使用 Allure 报告生成器 Allure 是一款流行的报告插件,能够提供美观且详细的HTML格式的结果展示页面。通过在命令行中指定额外选项即可轻松启用该特性: ```bash pytest --alluredir=./results ``` 这会把所有的测试结果保存到本地磁盘上的某个位置供后续处理。之后再利用专门提供的命令转换成可视化报表形式查看。 #### 设置 Jenkins 构建任务 Jenkins 是一种开源软件产品,作为持续集成服务而广受欢迎。设置一个新的自由风格的工作区,在构建触发器部分设定定时计划或者监听版本控制系统提交事件;接着添执行Shell脚本来启动实际的任务流程,像这样: ```bash cd /path/to/project_root source venv/bin/activate # 如果有虚拟环境的话激活它 pytest --alluredir=/tmp/allure-results allure serve /tmp/allure-results # 启动内置HTTP服务器预览报告 ``` 最后一步是配置邮件通知机制或者其他方式告知相关人员当前批次的状态变化情况。 #### 关键点总结 有效的API测试不仅限于确认各个独立端点能否正常运作,更重要的是理解它们之间是如何协作完成业务需求,并妥善准备及清理关联资源以保障每次迭代都能获得一致性的反馈信息[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值