哈喽大家好,我是歪小王,又来给大家分享学习笔记了😄本期内容就围绕pytest的基本使用开始。废话不多说。开整!
01 配置文件
pytest是接口自动化的一个主要角色之一,配置文件也是pytest不可获取的一大功臣。使用配置文件,可以实现修改pytest的默认行为,比如用例的分组执行,也可以个性化定制测试用例文件命名以及用例方法的命名。
pytest的配置文件使用方法:首先新建一个pytest.ini的文件。命名是统一命名。不可修改。然后就可以在这个配置文件中增加常用参数。
addopts:表示命令行参数。具体详指在terminal中输入的参数。他还包括一些子参数
-s:表示输出调试信息,用于显示测试函数中print()打印的信息
-v:未加前只打印模块名,加v后打印类名、模块名、方法名,显示更详细的信息
-q:表示只显示整体测试结果
-vs:这两个参数可以一起使用
-n:支持多线程或者分布式运行测试用例。需安装:pytest-xdist插件
--reruns x:表示失败重试,x表示重跑次数。同多线程,需要安装插件:pytest-rerunfailures
--html=用户路径/report.html:生成报告。需安装:pytest-html(比较丑。有了allure。就可以抛弃它了)
-k ‘字符串’ :过滤执行,过滤执行用例方法中带有指定字符串的case
testpaths:测试用例路径。pytest默认执行当前项目下文件名以test_开头的文件。可以指定用例文件的目录路径,让pytest只执行该路径下的用例文件。
python_files:用例文件名称。可以指定pytest执行哪些文件
python_classes:用例类。可以指定pytest执行哪些类
python_functions:用例方法。可以指定pytest执行哪些方法
markers:标记、分组。使用他与pytest.mark.分组名称的装饰器。可将用例进行分组执行
[pytest]
# 添加命令行参数
addopts = -vs
# 文件搜索路径
testpaths = ./
# 文件名称
python_files = test_*.py
# 类名称
python_classes = Test*
# 方法名称
python_functions = test*
# 分组
markers =
moke:冒烟测试
import pytest
class Test:
def test01(self):
print("01")
# 使用装饰器分组
@pytest.mark.moke
def test02(self):
print("02")
assert 1 == 1
return '03'
# 使用装饰器分组
@pytest.mark.moke
def test03(self):
s = self.test02()
print(s)
assert '03' == s
PS:注意。如果是windows平台。在配置文件中不要写中文。否则,可能会出现gbk错误
02 运行方式
pytest有两种运行方式。一种是在main方法中使用run的方式进行运行。第二种则是在terminal命令行中。输入pytest运行。
main函数运行时。也是可以增加一些常用参数的。只需在main()方法的括号中以列表的方式增加参数即可。参数与上面配置文件类似。当然如果提前配置了配置文件。此处就不需要进行增加。
命令行运行方法
两种运行方式都是可以读取配置文件。所以配置文件配置好了。这里就非常简单了。
03 运行顺序
pytest的执行顺序在没有特殊控制器下,是以线性模式,由上至下的顺序来执行case的。在pytest接收到运行指令时(在命令行输入pytest或者执行main方法)。pytest首先会去找配置文件。读取其中的配置。
在得到配置后,pytest就会去指定的文件夹下面找到指定的用例文件。然后去查看这个文件里面有没有装饰器。如果有,则优先执行装饰器。如果没有,则执行用例方法。
04 结语
本期内容,到这里就先暂停一哈。下期将对工厂函数以及pytest一些常用插件进行一些介绍。本期内容中也提到一些插件,也会在下期内容中出现。
最近北京疫情较严重。各位大佬保护好自身哈,不要去蹦迪,不要去蹦迪,不要去蹦迪!在家卷一下不香吗?