本文记录关于自动化测试的基础学习内容
使用的语言:python
从这里开始介绍:pytest的夹具
一、使用fixture实现部分用例前后置
@pytest.fixture(scope=‘作用域’, params=‘数据驱动’, autouser=‘自动执行’, ids=‘自定义参数名’, name=‘夹具函数别名’)
1、scope:作用域
function:在用例前后执行
class:在类前后执行
module:在py文件前后执行
package/session:在每个package前后执行
2、用例级别使用步骤:
注意:
①:若设置夹具函数的参数 autouser=True,则所有用例都会自动执行,一般不为True
②:yield和return都可以返回值,不同的是,yield是返回一个对象(对象中可以含多个值),且会执行后面接的语句,从而实现后置操作
3、类级别使用步骤:
4、模块级别使用步骤:
注意:模块级别的夹具函数,一般不指定模块,且自动调用
5、package/session级别使用步骤:
一般和conftest.py文件一起使用
6、剩余参数:
①:params:数据驱动
数据类型:列表、元组、字典列表、字典元组
使用示例:
注意:夹具函数需要用 request 接收数据,用 request.param 获取数据,每次取一个值
②:ids:自定义参数名(仅了解)
需要和params一起使用
③:name:给夹具函数起别名(仅了解)
注意:后续调用夹具函数就只能用别名,而不能使用夹具函数名
二、作用域为package/session时,配合conftest.py使用
conftest.py文件介绍:
1、文件名固定
2、主要用于单独存放fixture固件
3、可以在多个包或多个py文件共享前后置(例如:登录,某模块共性)
4、conftest文件内的夹具函数不需要导包,可直接使用
5、conftest文件可以有多个,且多个层级使用(先执行全局,后执行共性)
6、作用域为包级别时,多个包前后只执行一次(不适合数据驱动)
7、conftest文件中夹具函数执行优先级高于同级别:
function级别高于setup和teardown
class级别高于setup_class和teardown_class
module级别高于setup_module和teardown_module
使用场景:
1、初始化日志对象(避免日志重复)
2、初始化数据库(连接、关闭)
三、pytest原生断言
assert 语句
四、pytest结合allure生成报告
1、安装JDK环境
2、安装allure文件
3、安装allure-pytest插件
以上环境安装的教程网上有很多,且会有人更新,这里就不介绍了
4、修改pytest.ini配置文件,运行时在reports目录下生成temp临时目录,存放json格式的临时报告
5、修改run.py执行文件,将json格式的临时报告转换为html格式的报告
执行上述的run.py文件,会自动生成测试报告(如果没reports目录,也会自动生成)
选择浏览器打开html文件,就可以看到简单的allure报告了
下面我们学习怎么定制allure报告