一、pytest常用夹具(前后置方法)
1.setup/teardown&setup_class/teardown_class(针对全部case)
使用场景:case执行前需要打开浏览器,执行后关闭浏览器
setup/teardown是在每个case前后执行
setup_class/teardown_class是在类的前后执行
2.使用@pytest.fixture()装饰器实现部分case前后置
@pytest.fixture(scope=" ",params=" ",autouse=" ",ids=" ",name=" ")
参数详解:scope :被@pytest.fixture标记的方法的作用域,function(默认)、class、module和package(session);
params :参数化,支持列表[]、元祖(,)、字典列表[{},{},]、字典元祖({},{},)
autouse=True:自动使用,默认为False(case不需要写装饰器名称,为True时全部使用)
ids:当使用params参数化是,给每一个值设置一个变量名,用的不多
name:给被@pytest.fixture标记的方法取一个别名,取了别名之后之前的名称就不能用了
3.通过conftest.py和@pytest.fixture()结合使用实现全局的前后置应用
3.1conftest.py是夹具的配置文件,名称不能更改
3.2用处:在不同的py文件里使用同一个fixture函数
3.3原则上conftest.py需要和运行的case放到一层,不需求import
二、pytest结合allure-pytest插件生成allure测试报告
1.下载、解压、配置path路径
http://allure.qatools.ru/
2.加入命令生成json格式的临时报告
--alluredir ./temp
3.生成allure报告
os.system('allure generate ./temp -o ./report --clean')
allure generate allure命令
./temp 临时的json格式报告路径
-o 输出
./report 生成的allure报告路径
--clean 清空./report下上次的报告
三、@pytest.mark.parametrize()
@pytest.mark.parametrize(args_name,args_value)
arg_name:参数名
args_value:参数值(列表、元祖、字典列表、字典元祖)
四、yaml文件
1.用于全局的配置文件(ini/yaml)
2.用于写测试用例(接口测试)
yaml简介:
yaml是一种数据格式,支持注释,换行,多行字符串,裸字符串(整型、字符串、数字)
语法规则:
1.区分大小写
2.使用缩进表示层级,不能使用tab键,只能用空格
3.缩进没有数量,前面对齐即可
4.注释#
数据组成
1.map对象,键值对 键:(空格)值
多行的写法
person:
name: baby
age: 16
一行的写法:
person:{name:baby,age: 16}
2.数组(list),用一组横线开头
多行的写法:
-
person1:
-name: baby
-age: 16
-
person2:
-name: lili
-age: 19
一行的写法:
-
person1:[{name:baby},{age:18}]
网友评论