Pytest学习笔记(下)
六、Pytest跳过测试用例
有条件跳过和无条件跳过,如图:
七、case的前后置
1、所有用例、类、模块的前后置:setup\teardown
2、部分前后置:使用fixtrue装饰器固件
Fixtrue介绍,方法如下:
@pytest. fixture(scope="作用域" , params="数据驱动" , autouse="自动执行" , ids="数据
名参数名" , name="给fixture作用的函数重命名")
scope参数:
function函数
class类
module模块
package/session会话
Conftest.py文件介绍:
会话的前后置, 一般会结合conftest.py文件一起使用
1.conftest. py单独用于存放fixture固件的配置文件。
2.在conftest py中固件在使用时不需要导包。
3.可以有多个conftest.py文件。
3、不同情况下的使用
1、部分case前后置设置
2、部分类的前后置,引用方式
3、部分会话的前后置:
八、接口之间的关联
接口关联(需要把所有的全局变量都集中管理)
比较成熟的是:通过一个单独的yaml文件管理。
接口自动化测试框架封装的第一步:接口关联封装。
一般会把接口之间需要使用到的变量数据,存放到yaml文件中,所以一般在根目录下创建一个yml文件用来存数据;那么数据就需要存和读的方法,我们创建一个common文件夹,下面存放一些工具的模块,yaml_util.py该文件存放对yml文件来操作函数
举例:把获取的token放在yaml文件中
九、生成报告:allure
注:allure的运行环境是依赖于JDK的,需要先下载JDK
1.官网下载allure :
下载地址:htps://github .com/allure-framework/allure2/releases
下载之后解压保存到E盘,并且需要把bin路径配置到path里面。E:\allure-2. 13.7\bin
2.验证allure是否安装成功
allure --version
3.生成allure报告
(1)生成临时的json格式的报告
addopts = -vs -alluredir ./temps --clean-alluredir
(2)生成html报告
os.system("allure generate ./temps -0 ./reports --clean")
(3) 打开报告
也可直接输入命令打开(输入以下两个命令其中一个即可):
allure serve ./report/allure
allure open ./report/html
十、自动化测试框架结构:
十一、Pytest数据驱动
1、解决一个接口只有一个用例的问题? ( 数据驱动)
@pytest.mark.parametrize(args_name, args_value)
args_name :参数名,字符串
args_value :参数值,(list , tuple ,字典列表,字典元祖) , 有多少个值那么测试用例就执行多少次。
第一种用法:
@pytest . mark . parametrize("caseinfo",['张三’, ‘李四’, ‘王五'])
def test_ get_ token(self, caseinfo):
print(caseinfo)
第二种用法:解包
@pytest . mark . parametrize("name,age" ,[[张三', '13'],['李四', '11']])
def test_ .get_ token(self, name ,age):
print (name, age)
3、90%企业都是通过Yaml来管理接口自动化测试的用例
yaml是一种数据格式, 主要用于配置文件或编写用例。
yamI只有两种数据:
1.键值对:
key: (空格) value
2.list,用一组横线开头表示(-)
-张三
-李四
操作yamI所使用第三方库不是yaml ,而是pyyaml
一个py文件可以有多个接口。
一般一个接口对应一-个yaml文件,yamI文件里面就有几十个用例,有正例和反例。
请求方式的封装