(优化一)Python+requests自动执行接口测试用例

上篇文章主要写的是执行单条用例并写入,本篇添加一点优化内容:1、用例条数可控   2、循环执行多条用例并写入结果

优化思路:

1、创建api_test函数,将用例地址和用例条数参数化

def api_test(excelDir, lines):

    workbook = xlrd.open_workbook(excelDir, formatting_info=True)
    

2、读取指定内容,根据用例所属行数(即用例条数)遍历执行(列数是一致的,可以直接给固定值)

 #遍历用例行数(从1开始,0为标题栏所以忽略)
    for i in range(1, lines):
       # 1-3读取指定单元格
        celldata = workSheet.cell(i, 5).value
        celldata1 = workSheet.cell(i, 3).value
        celldata2 = workSheet.cell(i, 6).value

3、将执行结果和所在行拼接成字典(写入结果时要根据行数写入,所以同时 用到两个参数,所以选择了字典格式)

3-1:遍历行数添加到列表

 #行数
    listline = []
    #存放测试结果
    result = []
    #遍历用例行数(从1开始,0为标题栏所以忽略)
    for i in range(1, lines):
        listline.append(i)

    
 

3-2:执行结果添加到列表

        if r.status_code == 200:
            print('通过')
            # 定义变量记录判断结果,之后用于写入表格
            excel_res = 'PASS'
        else:
            print('失败')
            excel_res = 'FALSE'

        result.append(excel_res)

3-3:拼接成字典

# 将两个列表拼接成字典
    dict_result = dict(zip(listline, result))

4、遍历字典,将结果写入表格内

    for i, j in dict_result.items():
        wrSheet.write(i, 9, j)

完整代码如下:

import json
import xlrd
import requests
from xlutils.copy import copy  # 复制函数


# 自动运行接口测试用例,参数excel:用例地址 lines:用例总行数
def api_test(excelDir, lines):
    # 1-读取Excel测试用例
    # 1-1:打开Excel
    # formatting_info=True :可保留当前表格的格式(行宽,列宽等)。创建表格格式为.xls,否则保存时报错。其他格式要通过另存为改为xls格式,重命名更改无效!!!
    workbook = xlrd.open_workbook(excelDir, formatting_info=True)
    # 通过角标获取表单:workSheet = workbook.sheet_names()[0]
    # 1-2通过表单名获取表单
    workSheet = workbook.sheet_by_name("Sheet1")
    #行数
    listline = []
    #存放测试结果
    result = []
    #遍历用例行数(从1开始,0为标题栏所以忽略)
    for i in range(1, lines):
        listline.append(i)
        # 1-3读取指定单元格
        celldata = workSheet.cell(i, 5).value
        celldata1 = workSheet.cell(i, 3).value
        celldata2 = workSheet.cell(i, 6).value
        # 2-构建接口对应请求
        url = celldata1
        data = json.loads(celldata2)  # json.loads('string')字符串格式改为字典格式
        headers = json.loads(celldata)
        r = requests.get(url, params=data, headers=headers)
        # 判断接口返回
        if r.status_code == 200:
            print('通过')
            # 定义变量记录判断结果,之后用于写入表格
            excel_res = 'PASS'
        else:
            print('失败')
            excel_res = 'FALSE'
        result.append(excel_res)
    # 将两个列表拼接成字典
    dict_result = dict(zip(listline, result))
    # 3-测试结果写入Excel
    # 3-1-首先打开Excel(可复用步骤1-1)
    # 3-2-复制
    workbookWr = copy(workbook)
    wrSheet = workbookWr.get_sheet(0)
    # 写入单元格(测试结果栏)
    for i, j in dict_result.items():
        wrSheet.write(i, 9, j)
    # 保存用例(保存为新文件)
    workbookWr.save(r'E:\\用例2.xls')


# 调用函数
excel = r'E:\\用例.xls'
api_test(excel, 3)

自动化的功能是实现了,但方法可能有些拙劣,希望有新思路的各位大神多多指教

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接口自动化测试框架是一种用于管理和执行接口测试用例的工具。Python语言结合pytest和requests库可以很方便地实现接口自动化测试框架。 首先,你需要安装pytest和requests库。可以使用以下命令安装它们: ``` pip install pytest pip install requests ``` 接下来,创建一个测试用例文件,例如`test_api.py`,并导入所需的库: ```python import pytest import requests ``` 然后,编写测试用例函数。使用pytest的装饰器`@pytest.mark.parametrize`可以方便地实现参数化测试。 ```python @pytest.mark.parametrize("url, expected_status_code", [ ("https://api.example.com/users", 200), ("https://api.example.com/posts", 200), ("https://api.example.com/comments", 200), ]) def test_api(url, expected_status_code): response = requests.get(url) assert response.status_code == expected_status_code ``` 在上面的示例中,我们定义了三个测试用例函数,每个测试用例函数都会发送一个GET请求并断言响应的状态码是否与期望的状态码一致。 最后,使用pytest命令来运行测试用例: ``` pytest test_api.py ``` pytest会自动发现并执行所有以`test_`开头的函数作为测试用例。 通过以上步骤,你就可以使用Python+pytest+requests构建一个简单的接口自动化测试框架,并使用unittest风格的方式管理测试用例。当然,你还可以根据实际需求添加更多的功能,例如报告生成、测试数据管理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值