写一个使用excel做数据驱动的接口测试脚本
时间: 2024-02-23 17:03:17 浏览: 125
好的,以下是一个使用Excel做数据驱动的接口测试脚本的示例:
1. 首先,导入所需的库和模块:
```
import xlrd
import requests
```
2. 然后,定义一个函数来读取Excel文件并获取测试数据:
```
def get_test_data(file_path, sheet_name):
# 打开Excel文件并获取工作簿对象
workbook = xlrd.open_workbook(file_path)
# 获取指定的工作表对象
sheet = workbook.sheet_by_name(sheet_name)
# 获取行数和列数
rows = sheet.nrows
cols = sheet.ncols
# 定义一个空列表,用于存储测试数据
test_data = []
# 遍历每一行数据
for i in range(1, rows):
# 定义一个字典,用于存储每一行数据
row_data = {}
# 遍历每一列数据
for j in range(cols):
# 获取单元格的值并添加到字典中
key = sheet.cell_value(0, j)
value = sheet.cell_value(i, j)
row_data[key] = value
# 将每一行数据添加到测试数据列表中
test_data.append(row_data)
# 返回测试数据列表
return test_data
```
3. 接下来,定义一个函数来发送HTTP请求并获取响应结果:
```
def send_request(url, method, headers, params=None, data=None, json=None):
# 发送HTTP请求并获取响应结果
response = requests.request(method=method, url=url, headers=headers, params=params, data=data, json=json)
# 获取响应状态码和响应内容
status_code = response.status_code
content = response.text
# 将响应状态码和响应内容添加到字典中
result = {'status_code': status_code, 'content': content}
# 返回响应结果字典
return result
```
4. 最后,定义一个函数来执行接口测试并输出测试结果:
```
def run_test(file_path, sheet_name):
# 获取测试数据
test_data = get_test_data(file_path, sheet_name)
# 遍历每一条测试数据
for data in test_data:
# 获取测试数据中的请求URL、请求方法、请求头、请求参数、请求体等参数
url = data['url']
method = data['method']
headers = eval(data['headers'])
params = eval(data['params']) if data['params'] else None
data_body = eval(data['data']) if data['data'] else None
json_body = eval(data['json']) if data['json'] else None
# 发送HTTP请求并获取响应结果
response = send_request(url=url, method=method, headers=headers, params=params, data=data_body, json=json_body)
# 获取期望结果和实际结果
expected_result = eval(data['expected_result'])
actual_result = response['content']
# 判断期望结果和实际结果是否一致
if expected_result == actual_result:
# 输出测试结果
print('测试通过')
else:
# 输出测试结果
print('测试失败')
```
使用以上代码,你可以编写一个数据驱动的接口测试脚本,从Excel文件中读取测试数据并执行接口测试,并输出测试结果。
阅读全文