测试套规划:
按照测试阶段划分,不同的测试版本划分,按照软件的功能模块划分
如何指定测试的内容:
分为:mark标签模式,skipif模式,pytest.ini配置文件模式,pytest命令行模式
一.mark标签模式
执行少量的测试内容,被标记的执行。@pytest.mark.smoke 说明:若标签没在pytest.ini中进行说明,会有警告。如何说明,参考下面配置文件pytest.ini如何使用部分。
二.pytest的skipif模式
不执行少量测试内容。@pytest.mark.skipif(conditon=='冒烟',reason='不执行该测试'.当满足参数1的条件时,执行。==也可以是满足!=关系。参数2可以不写,如果要想打印,输出reason,执行时加上-rs
三.pytest.ini配置文件模式
在驱动文件中执行main方法时,程序会首先读取ini文件的设置,命令行执行同理,所以命令行执行时,会执行的是ini文件和命令行指定运行文件的并集
addopts是执行文件时选项
testpaths 是指定运行的路径/文件名
python_files 是指定运行的文件名,包含所有test_flow_add开头的文件
python_classes是运行对应的类
python_functions是运行指定的方法,可以不以test开头,如上图举例。
以上的指定路径运行是从上往下包含的,下受上的范围限制,如果不想被影响,注释掉上级范围
补充:如果有多个标签,如何运行?
答:在pytest.ini文件中进行多个说明,例如上图,增加标签@pytest.mark.smoke2后,在ini文件添加“smoke2:冒烟测试”。然后驱动文件中main加上参数‘-m 标签名1 or 标签名2’如下
import pytest
if __name__ == '__main__':
pytest.main(['-m smoke1 or smoke2'])
四.pytest命令行方式
方式1.执行全部当前文件下的所有测试 pytest
方式2.指定路径
pytest ./路径名称
或者 pytest ./路径名称 -k 关键字
命令行可以执行指定路径下含有关键字内容的所有文件或类或方法
例如 pytest ./test_script -k 'add' 就会执行所有的包含add的文件或类或方法
但是pytest.ini文件的指定名称只能支持前缀 如add*,以add开头的所有东西
方式3:指定文件 pytest ./路径名/文件名.py
pytest ./test_script/authority/user.py
方式4.指定类或方法
类:pytest ./路径/文件名.py::类名
方法:pytest ./路径/文件名.py::类名::方法名
备注:使用的时候只使用一种,多种混用,就会弄的很乱,搞不清到底是哪个脚本在执行