以下是“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)
通过以上代码,即可在控制台中打印出每个测试用例的请求信息和响应信息,以便于查看和调试。
希望以上内容能够对你有所帮助。