一、测试套的划分
按照不同的测试阶段划分
按照不同的测试版本划分
Django测试平台,按照功能模块划分
二、执行指定的测试内容
标签名可以被当做是测试套,mark标签是帮我们查漏补缺的,做一些零星的测试套的编辑,大批量还是要用目录或者是目录名来去控制运行
冒烟测试的驱动,在根目录下创建,脚本是脚本,驱动是驱动,用驱动去管理我们的脚本,这是最基本的一个思想
1.pytest的mark标签,执行少量的测试内容,@pytest.mark.smoke,若标签没有在pytest.ini中进行说明,会有警告一般标签,都是建议写在初始化ini文件中
执行命令
import pytest
if __name__ == '__main__':
pytest.main(['-vs','-m smoke1'])
这是pytest.ini文件
[pytest]
markers=
smoke1:冒烟测试1
2.pytest的skipif模式,不执行少量测试内容,@pytest.mark.skipif(con=="判断条件",reason="不执行这条脚本的理由")
import pytest
import os
if __name__ == '__main__':
pytest.main(['-vs','-rs'])
3.pytest.ini配置文件模式,每次执行都得写一堆的参数,pytest提供给我们一些方法,每次运行的时候,不需要输入这么多命令,把参数移植给pytest.ini,自己定义的一个全局变量设置,addopts下填入的参数,不需要加单引号,不需要逗号,直接空格,然后驱动文件里面pytest.main()参数就不需要输入了,中括号也不需要
4.多个标签怎么设置
5.ini配置文件指定路径运行脚本、类、方法
想运行哪个文件,直接在ini文件中改就好,这样指定测试套也会比较方便
把ini文件改了,驱动文件是不用改的,因为驱动文件里面只是做了一个执行动作而已
这样每次回归测试都能找到对应路径下的文件,也不需要去改驱动文件
指定文件运行,指定方法运行,前缀是不能加*号的,只能在后缀加*号,指定路径文件方法,它是一种递进关系
6.pytest终端命令行模式,
临时在运行的时候,这些配置都不想动了,
方式1:执行全部当前路径下的所有测试,pytest
方式2:指定路径
pytest./路径名称
pytest./路径名称 -k "关键字" ,可以执行指定路径下关键字内容的所有文件或类或方法,但是pytest.ini文件的指定名称只能支持前缀xxx*
方式3:指定文件,pytest 文件名.py
方式4:指定类或方法,pytest./路径名/文件名.py::类名::方法名
setup_class是不能被指定运行的,它是默认运行的,可以指定下面的方法名
如果在pytest.ini文件中已经指定了路径或相关内容,执行pytest命令,都会去检查ini文件中有没约束,执行的是部分
1.待解决的问题
1.pytest运行所有的脚本,只要有一个不符合pytest运行规则,那么一个脚本也不会运行,这个要怎么解决
2.不执行测试内容的标签可以放在方法上吗