一、@pytest.mark.parametrize()基本用法
在实际使用中,一般使用parametrize进行参数化
@pytest.mark.parametrize(args_name,args_value)
args_name:参数名
args_value:参数值
import pytest
class TestApi:
@pytest.mark.parametrize('args', ['百里', '星瑶', '依然'])
def test_api_01(self, args):
print('接口测试', args)
if __name__ == '__main__':
pytest.main()
拆包操作如下:
class TestApi:
@pytest.mark.parametrize('name,age', [['百里', [38]], ['星瑶', '18']])
def test_api_01(self, name, age):
print('接口测试', name, age)
if __name__ == '__main__':
pytest.main()
二、YAML文件详解—实现接口自动化
1、用于全局的配置文件 ini、yaml
2、用于写测试用例(接口测试用例)
yaml简介:
yaml是一种数据格式,支持注释、换行、多行字符串、裸字符串(最小的数据单元)
语法规则:
1、区分大小写
2、使用锁进表示层级,不能使用tab键,只能用空格。
3、缩进没有数量,只要前面对其
4、注释是#
数据组成:
1、Map对象、键值对
https://www.bejson.com/validators/yaml_editor # 验证YAML格式网站
分行写法:冒号后要有空格
wzry:
name: 蔡文姬
age: 10
单行写法:注意空格,不能tab
abcd: {name: 孙膑,age: 15}
数组写法:加个横线空格
wzry:
- name: 蔡文姬
- age: 10
yaml转换成python数据格式,例子:加了- 所以转换的成列表
#test_api.yaml
- wzry:
- name: 蔡文姬
- age: 10
#yaml_util.py
import yaml
class YamlUtilL:
def __init__(self, yaml_file):
'''
通过init方法把yaml文件传入这个类
:param yaml_file:
'''
self.yaml_file = yaml_file
def read_yaml(self):
'''
读取yaml文件,对yaml反序列化,就是把我们对yaml格式转换成字典
:return:
'''
with open(self.yaml_file, encoding='utf-8') as f:
value = yaml.load(f, Loader=yaml.FullLoader)
print(value, type(value))
if __name__ == '__main__':
YamlUtilL('test_api.yaml').read_yaml()
三、yaml接口自动化实战
-
断言的封装
-
allure报告的定制
-
关键字驱动和数据驱动结合实现接口自动化测试
-
python的反射
正常:先初始化对象,再调方法
反射:通过对象得到类对像,然后通过类对象调用方法
-
jenkins持续集成和allure报告集成,并且根据自动化报告的错误率发送电子邮件
明天开始学习unittest