标签:没有 单元格 class exp 密码 通过 exce bsp rgb
导读:
首先我们来了解下什么叫数据分离,数据分离就是把数据和测试代码分开。
为什么要分离?测试数据和代码绑定在一起,测试用例太多,维护不方便。
数据分离后,测试用例函数就不需要改动,只需要改动测试数据就可以了。
数据分离的流程:
excel编写用例 --> python读取excel --> [{},{},{}] --> 导入测试用例函数
python怎么读取?
1-打开excel文件
2-选择sheet页
3-获取表格里所有的数据
python操作excel,需要导入第三方库openpyxl或者xlrd
库:openpyxl 专门处理excel的python库
库:一系列代码的仓库
内部库:python内置的,已经实现的标准库,os
外部库:别人实现的第三方库,需要pip install 库
xlrd:只能读不能写
openpyxl:可读可写,现在比较主流,下面以openpyxl为例
1 import openpyxl 2 from openpyxl.worksheet.worksheet import Worksheet 3 4 5 # 1.打开excel 6 workbook = openpyxl.load_workbook((‘case.xlsx‘) 7 # 2.选择表格标签,加上:Worksheet 对象.就有系统系统方法,也可以不加,不加就没有提示而已,自己记住用法 8 sheet:Worksheet = workbook["sheet1"] 9 # 3.读取单元格数据,了解即可 10 # cell = sheet.cell(row=1,column=1) 11 # print(cell.value) 12 # 3.重点:读取所有的数据 13 values = list(sheet.values) 14 print(values) 15 # 4.关闭文件 16 workbook.close()
打印结果:列表嵌套字典的用例,这种形式还不能直接使用,需要通过zip来处理数据
[(‘case_id‘, ‘username‘, ‘password‘, ‘expected‘), (1, ‘yuz‘, 123, ‘{"code": "200", "msg": "登录成功"}‘), (2, ‘yuz‘, 111, ‘{"code": "300", "msg": "用户名或密码错误"}‘), (3, ‘yux‘, 123, ‘{"code": "300", "msg": "用户名或密码错误"}‘), (4, ‘yux‘, 111, ‘{"code": "300", "msg": "用户名或密码错误"}‘), (5, None, 123, ‘{"code": "400", "msg": "用户名或密码为空"}‘), (6, ‘yuz‘, None, ‘{"code": "400", "msg": "用户名或密码为空"}‘), (7, None, None, ‘{"code": "400", "msg": "用户名或密码为空"}‘)]
1 import unittest 2 import openpyxl 3 from openpyxl.worksheet.worksheet import Worksheet 4 5 def read_excel(file_path,sheet_name): 6 ‘‘‘读取excel数据的函数‘‘‘ 7 # 1.打开文件 8 # 2.选择表格标签 9 # 3.读取标签内的所有数据,generator生成器 10 # 4.文件关闭 11 workbook = openpyxl.load_workbook(file_path) 12 sheet = workbook[sheet_name] 13 values = list(sheet.values) 14 title = values[0] 15 rows = values[1:] 16 # title,*rows = values # 简写法 17 # 列表推导式[j for i in 容器] 18 new_rows = [dict(zip(title,row)) for row in rows] 19 workbook.close() 20 return new_rows 21 data = read_excel(‘cases.xlsx‘,‘login‘) 22 pprint.pprint(data)
打印结果:
[{‘case_id‘: 1,
‘expected‘: ‘{"code": "200", "msg": "登录成功"}‘,
‘password‘: 123,
‘username‘: ‘yuz‘},
{‘case_id‘: 2,
‘expected‘: ‘{"code": "300", "msg": "用户名或密码错误"}‘,
‘password‘: 111,
‘username‘: ‘yuz‘},
{‘case_id‘: 3,
‘expected‘: ‘{"code": "300", "msg": "用户名或密码错误"}‘,
‘password‘: 123,
‘username‘: ‘yux‘},
{‘case_id‘: 4,
‘expected‘: ‘{"code": "300", "msg": "用户名或密码错误"}‘,
‘password‘: 111,
‘username‘: ‘yux‘},
{‘case_id‘: 5,
‘expected‘: ‘{"code": "400", "msg": "用户名或密码为空"}‘,
‘password‘: 123,
‘username‘: None},
{‘case_id‘: 6,
‘expected‘: ‘{"code": "400", "msg": "用户名或密码为空"}‘,
‘password‘: None,
‘username‘: ‘yuz‘},
{‘case_id‘: 7,
‘expected‘: ‘{"code": "400", "msg": "用户名或密码为空"}‘,
‘password‘: None,
‘username‘: None}]
标签:没有 单元格 class exp 密码 通过 exce bsp rgb
原文地址:https://www.cnblogs.com/mengmengxiyu/p/14824777.html