python利用Excel读取和存储测试数据完成接口自动化教程

  • Post category:Python

以下是“Python利用Excel读取和存储测试数据完成接口自动化教程”的完整实例教程:

什么是接口自动化测试

接口自动化测试是指对系统接口进行测试,使用自动化工具自动化执行测试的过程。现在的软件产品中,接口逐渐成为系统的核心,接口自动化测试也跟着变得越来越重要。

准备工作

在进行接口自动化测试前,需要先准备好以下环境:

  • Python环境
  • requests库
  • xlrd库
  • xlwt库
  • 接口测试文档Excel

在这里我们介绍一下requests库,它是Python中一个方便的HTTP库,可以用来发送HTTP请求和在测试中模拟浏览器。xlrd和xlwt则是Python中用于读取和写入Excel文件的库。

实现步骤

下面我们就来详细讲解Python如何利用Excel读取和存储测试数据完成接口自动化的实现步骤。

步骤一:导入库并读取Excel数据

首先,我们需要在Python代码中导入三个库,即requests、xlrd和xlwt。然后,我们通过xlrd库中的open_workbook()函数打开接口测试文档Excel,并通过sheet_by_index()函数获取指定工作薄中的内容,再通过nrows方法获取工作薄的行数,从而获取Excel中的所有测试用例数据。

import requests
import xlrd
import xlwt

workbook = xlrd.open_workbook('接口测试文档.xls')  # 打开Excel文档
sheet = workbook.sheet_by_index(0)  # 获取第一个工作薄
rows = sheet.nrows  # 获取行数

步骤二:读取Excel中的测试用例数据并发送HTTP请求

接着,我们可以通过for循环遍历Excel中的每一行测试用例数据,并通过requests库中的requests.post()方法发送HTTP请求,从而获取系统的接口响应信息,并将响应信息存储到一个二维列表中,该列表中的每一行均为一个测试用例对应的响应信息。

headers = {'Content-Type': 'application/json'}

response_list = []  # 响应信息存储列表

for i in range(1, rows):  # 遍历Excel中的测试用例数据
    url = sheet.cell(i, 2).value  # 获取接口地址
    body = sheet.cell(i, 3).value  # 获取接口请求体
    res = requests.post(url, headers=headers, data=body.encode('utf-8'))  # 发送HTTP请求
    response = res.json()  # 获取响应信息
    response_list.append(response)  # 将响应信息存储到响应信息列表中

步骤三:将测试用例响应信息存储到Excel中

最后,我们通过xlwt库和for循环将测试用例响应信息写入到新建的Excel文档中,从而完成整个接口自动化测试的过程。

workbook2 = xlwt.Workbook(encoding='utf-8')  # 创建Excel文档对象
sheet2 = workbook2.add_sheet('接口响应数据')  # 创建工作薄并命名

for i in range(rows-1):  # 遍历Excel中的测试用例数据
    for j in range(sheet.ncols):  # 遍历每一行的所有列
        sheet2.write(i, j, response_list[i][j])  # 将测试用例响应信息写入到新建的Excel文档中

workbook2.save('接口响应信息.xls')  # 保存Excel文件

示例说明

在具体实现过程中,我们可以采用以下两条示例说明来进一步理解和使用以上步骤。

示例一

假设接口测试文档Excel中的测试用例如下:

id 测试用例名称 接口地址 请求体
1 测试用例1 /api/login { “username”: “test”, “password”: “123456” }
2 测试用例2 /api/getuser { “user_id”: “123456” }
3 测试用例3 /api/save { “title”: “测试”, “content”: “测试内容” }

则可以通过以上步骤,利用Python自动化读取和存储测试数据完成接口自动化测试,并将测试结果存储到新建的Excel文档中。

示例二

假设在实现以上步骤时,要求将接口请求和响应的部分信息打印到控制台中,则可对步骤二的代码进行修改,增加对响应信息的打印输出:

for i in range(1, rows):  # 遍历Excel中的测试用例数据
    url = sheet.cell(i, 2).value  # 获取接口地址
    body = sheet.cell(i, 3).value  # 获取接口请求体
    res = requests.post(url, headers=headers, data=body.encode('utf-8'))  # 发送HTTP请求
    response = res.json()  # 获取响应信息
    response_list.append(response)  # 将响应信息存储到响应信息列表中
    print('请求信息:', url, body)
    print('响应信息:', response)

通过以上代码,即可在控制台中打印出每个测试用例的请求信息和响应信息,以便于查看和调试。

希望以上内容能够对你有所帮助。