一、Yaml文件
1、用于全局的配置文件
2、用于写测试用例(接口测试用例)
yaml简介:
数据格式,支持注释,换行、多行字符串、裸字符串
语法规则:
1、区分大小写
2、使用缩写表示层级,不能使用tab键缩进,只能使用空格
3、缩进没有数量,只要前面是对其就行
4、注释是#
数据组成:
1、Map,键值对 键:(空格)值
yaml格式编辑器:https://www.bejson.com/validators/yaml_editor/
多行写法:
maxy:
age: 18
name: gangan
一行的写法:
maxy: {age: 18,name: gangan}
2、数组(list):用一组横线(-)开头
maxy:
- age: 18
- name: gangan
多行的写法 - maxy:
- age: 18
- name: gangan
- msxy:
- age: 20
- name: chichi
一行数组的写法:
- maxy: [{age: 18},{name: gangan}]
以下是一个login的例子
login.yaml
二、yaml文件读写
安装yaml库:pip install yaml
#读取yaml文件
def read_yaml(path):
"""
读取yaml文件
:param path: 要读取的yaml文件路径
:return: 返回yaml内容
"""
with open(path,encoding="utf-8") as f:
value=yaml.load(stream=f,Loader=yaml.FullLoader)
return value
def write_yaml(path,data):
"""
写入yaml文件
:param data: 要写入的yaml数据
:return:
"""
with open(path,encoding="utf-8",mode='a') as f:
yaml.dump(data,stream=f,allow_unicode=True)
def clear_yaml(path):
"""
清空yaml文件,一般在整个项目执行之前,清空
:return:
"""
with open(path, encoding="utf-8", mode="w") as f:
f.truncate()
三、登录测试
使用pytest.mark.parametrize进行参数化传入yaml文件,读取yaml文件中用例
@pytest.mark.parametrize('login', read_yaml('.../data/login.yaml'))
def test_login(self, login):
res = requests.request(url=login['url'], method=login['method'], data=login['datas'])
res = json.loads(res.text)
print(res)
code = res['status']
msg = res['message']
assert login['code']==code
assert login['msg']==msg