requests+pytest(读取Excle文件)

这篇博客介绍了如何结合requests库和pytest框架来读取Excel文件中的网址信息,用于自动化测试。首先,创建Excel文件存储网址;接着,读取文件内容;然后,使用requests发送请求并获取响应;最后,通过pytest编写单元测试,验证接口的可用性。

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

requests+pytest(读取Excle文件)

为了方便查看整个流程以及代码结构,读取Excle文件由三个py(单元测试模块,requests响应模块与excle文件读取模块)文件与一个excle文件组成(网址信息存储文件)

第一步:编写excle网址信息存储文件

第二步:读取excle文件内容

# 调用excle文件内容(为requests提供访问网址等信息)
from openpyxl import load_workbook
class UseExcel():
    def get_TestExcel(self):
        # 打开表
        workbook =load_workbook(r'C:\Users\Lenovo\Desktop/Exclel.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):
    
### 如何在 Python 中结合 `requests` 和 `pytest` 进行测试 为了实现基于 HTTP 请求的功能测试,通常会使用 `requests` 库来发送请求并验证响应的行为。以下是具体方法: #### 安装依赖库 首先需要安装必要的工具包,包括 `pytest` 和 `requests`: ```bash pip install pytest requests ``` #### 编写测试代码 假设有一个 REST API 提供服务地址为 `http://example.com/api/data`,可以通过以下方式编写测试脚本。 ##### 测试文件结构 创建一个名为 `test_api.py` 的文件用于存储测试逻辑。 ##### 示例代码 下面是一个简单的测试案例,展示如何通过 `requests` 发送 GET 请求并断言返回的结果是否符合预期。 ```python import pytest import requests def test_get_request(): url = "http://example.com/api/data" response = requests.get(url) # 使用 requests 发起 GET 请求 assert response.status_code == 200 # 验证状态码是否为 200 [^1] data = response.json() # 将响应解析为 JSON 数据 assert isinstance(data, dict) # 确认数据是字典类型 [^1] def test_post_request(): url = "http://example.com/api/create" payload = {"key": "value"} # 构造 POST 请求的数据负载 response = requests.post(url, json=payload) # 使用 requests 发起 POST 请求 assert response.status_code == 201 # 验证状态码是否为 201 (Created) result = response.json() assert result["status"] == "success" # 断言返回的状态字段 ``` 上述代码展示了两种常见的 HTTP 方法——GET 和 POST 的基本测试流程。对于更复杂的场景,还可以引入参数化测试功能以覆盖更多情况。 #### 参数化测试 如果希望针对多个输入条件运行相同的测试函数,则可以利用 `@pytest.mark.parametrize` 装饰器简化操作过程。 ```python @pytest.mark.parametrize( "payload,status", [ ({"name": "Alice"}, 200), # 正常情况下应该成功处理 ({}, 400) # 如果缺少必要字段则应报错 ] ) def test_create_user(payload, status): url = "http://example.com/api/users" response = requests.post(url, json=payload) assert response.status_code == status # 动态校验不同情形下的期望结果 ``` 此部分实现了对用户创建接口的不同行为模式进行全面检测的能力。 #### 执行测试命令 完成以上准备工作之后,在终端中切换到项目根目录下并通过如下指令触发自动化检验程序: ```bash pytest ./tests/test_api.py ``` 这一步骤将自动扫描指定路径内的所有匹配命名约定的模块,并逐一调用其中定义好的各个单元测例加以评估。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值