PPT
代码地址
课后调查
命名规范
yaml 用法回顾
demo.yaml文件
# list yaml表达列表格式 :
# -【空格】列表中的值1
# -【空格】列表中的值2
# [1,2,3] python 列表对象
#- 1
#- 2
#- 3
# yaml 中表达python字典对象
# key1:[空格]value1
# key2:[空格]value2
# {"name": hogwarts,"course":"测试开发25期"}
#name: hogwarts
#course: 测试开发25期
# 定义嵌套,列表嵌套列表 [[1,1,2], [1,2,3], [2,2,4]]
#-
# - 1
# - 1
# - 2
#-
# - 1
# - 2
# - 3
#- [2,2,4] # 流式写法
# 字典嵌套字典 {"add": {"data": 1, "ids":"a"}}
#add:
# data: 1
# ids: a
# 字典嵌套字典,字典嵌套列表 {"add": {"data": [[1,1,2],[2,2,4]], "ids":["a","b"]}}
#add:
# data:
# -
# - 1
# - 1
# - 2
# -
# - 2
# - 2
# - 4
# ids:
# - a
# - b
"""
yaml 数据格式(json,csv ,excel) 存储数据
1. 配置
env: dev
host: 192.168.1.1
port: 8888
2. 测试数据
string
int
float
list
dict
"""
# pip install pyyaml
import yaml
def test_yamldemo():
# safe_load() 可将yaml对象转成python对象
with open("../datas/demo.yaml",encoding="utf-8") as f:
result = yaml.safe_load(f)
print(result)
def test_safe_dump():
# safe_dump() 可将python对象转成yaml格式
data = {"add": {"data": [[1,1,2],[2,2,4]], "ids":["a","b"]}}
with open("../datas/data.yaml",mode="w",encoding="utf-8") as f:
yaml.safe_dump(data, f)
实战练习一
pytest 支持中文展示
在测试项目的根目录下,创建一个名字为conftest.py
的文件,在文件中添加下面一段代码
def pytest_collection_modifyitems(items):
"""
测试用例收集完成时,将收集到的用例名name和用例标识nodeid的中文信息显示在控制台上
"""
for i in items:
i.name=i.name.encode("utf-8").decode("unicode_escape")
i._nodeid=i.nodeid.encode("utf-8").decode("unicode_escape")
读取测试数据关键代码
def get_datas(level):
"""
读取yaml文件中的数据
:param level: 通过 级别获取数据,datas 和ids
:return:
"""
with open("../datas/calculator.yaml", encoding="utf-8") as f:
datas = yaml.safe_load(f)
p0_datas = datas.get('add').get(level).get('datas')
p0_ids = datas.get('add').get(level).get('ids')
return [p0_datas,p0_ids]
注意:读取出来的类型如果需要转换成 对应的类别 ,需要使用eval()方法
实战练习二
allure 生成测试报告
- pip install allure-pytest
- allure工具
- Java
# 生成allure 报告
pytest test_add_yaml.py -vs --alluredir ./result
# 解析allure 报告
allure serve ./result