小白一枚,初次学习Python,初次写博客???学习目的是使用Python做自动化测试
以下代码是读取Excel数据并把数据存放到一个list中
from openpyxl import load_workbook
class doExcel:
def __init__(self,file,sheet):
self.file = file
self.sheet = sheet
# 读取Excel数据
def do_excel(self, phone_number):
# 定位单元格并取值
wb = load_workbook(self.file)
# 定位表单
sheet = wb[self.sheet]
sheet_phone_number = wb[phone_number]
# 获取sheet_phone_number表单第一行第一列的值
tel_number = sheet_phone_number.cell(1, 1).value
# 先获取表头数据
title_data = []
for i in range(1, sheet.max_column + 1):
title_data.append(sheet.cell(1, i).value)
test_data = []
# 获取动态手机号码并赋值
for i in range(2, sheet.max_row + 1):
# 创建一个空字典,用于存放title和value
dict_data = {}
for j in range(1, sheet.max_column + 1):
dict_data[title_data[j - 1]] = sheet.cell(i, j).value
# 修改sheet_phone_number表单中的值并保存
sheet_phone_number.cell(1, 1).value = tel_number + 1
wb.save(file_name)
# 判断该列的值是否包含'${tel}'
if sheet.cell(i, 5).value.find('${tel}') != -1:
# 字符串替换
dict_data['param'] = sheet.cell(i, 5).value.replace('${tel}', str(phone_number))
else:
dict_data['param'] = sheet.cell(i, 5).value
test_data.append(dict_data)
return test_data
# 清除指定行列数据
def write_clear(self):
wb = load_workbook(self.file)
sheet = wb[self.sheet]
for i in range(2, sheet.max_column + 1):
# 每次执行前清空该列数据
sheet.cell(i, 6).value = ''
# 每次执行前清空该列数据
sheet.cell(i, 7).value = ''
# 保存
wb.save(self.file)
# 写回结果
def write_back(self, row, actualResult, testResult):
wb = load_workbook(self.file)
sheet = wb[self.sheet]
# 写入实际结果值
sheet.cell(row, 7).value = actualResult # 运算结果的实际值
# 写入测试结果是通过还是不通过
sheet.cell(row, 8).value = testResult
# 保存
wb.save(self.file)
以上代码do_excel返回值是:
[{'id': 1, 'HttpMethod': 'post', 'url': 'http://....../app/login', 'description': '正常登录', 'param': '{"mobile": 13400000008, "password": "123456"}', 'ExceptResult': None, 'ActualResult': None, 'TestResult': None}, {'id': 2, 'HttpMethod': 'post', 'url': 'http://....../app/login', 'description': '非正常登录', 'param': '{"mobile": 13400000008, "password": "123456"}', 'ExceptResult': None, 'ActualResult': None, 'TestResult': None}]