目录
用例的挑选执行
指定模块执行:pytest后面跟模块文件名(文件名包括后缀扩展)。
指定目录执行:pytest后面跟目录名,可以同时指定多个目录文件执行,但是目录中的文件名不能出现重复。
指定类执行:pytest后面跟文件名::类名
指定方法执行:pytest后面跟文件名::类名::函数方法名
根据名字执行:pytest -k 名字(-k参数的使用,后面为名字)
- 名字可以是测试函数名、类名、模块名、目录名
- 同样遵循python中大小写敏感的原则
- 不需要完整,只要可以匹配即可
- 可以使用not 表示选择的名字中不包含:如,pytest -k “not 001”,即名字中包含001除外的其他都被执行(使用not\and\or时只能用英文双引号)
- 可以使用and 、or挑选用例:如,pytest -k “001 and 002”
- 根据标签挑选执行:在使用标签方法挑选用例的时候,需要用到pytest中的装饰器方法,故需导入pytest。导入后使用pytest的mark方法添加标签,如下:
# test_demo00文件
import pytest
@pytest.mark.试测
@pytest.mark.demotest
class Test_rundemo1:
# 方法的初始化和清除
def setup_method(self):
print('\n&&&&&&&&&&&初始化-方法&&&&&&&&&')
def teardown_method(self):
print('\n&&&&&&&&&&&清除-方法&&&&&&&&&&&&')
def test_101(self):
print('行到水穷处,坐看云起时')
def test_202(self):
print('判断整数和字符是否相等')
# test_demo2文件
import pytest
class Test_rundemo1:
@pytest.mark.试测
def test_101(self):
print('行到水穷处,坐看云起时')
执行结果:
标签的添加方法
- 使用装饰器添加:@pytest.mark.name
- name指的是标签名,可以是中文
- 一个用例可以添加多个标签
- 标签可以添加到单个测试用例前,赋予此用例这个标签,也可以是添加到class类前表示此类下面的所有的测试用例都具有此标签的性质,还可以给整个测试文件添加标签
- 测试文件添加标签的方法,在文件的最上面,即所有类的最前面,使用固定的变量pytestmark,并给此标签赋值,值为pytest.mark.name,如果是给文件添加多个标签,则需要使用列表的方法将所有标签放进列表,如pytestmark = [pytest.mark.name1,pytest.mark.name2]
- 运行时需要使用参数-m,pytest -m 标签名
- 运行时通过标签挑选用例的同样可以使用not\and\or
数据驱动
在pytest框架中要使用数据驱动,只需要将要驱动的数据通过pytest装饰器添加到需要使用数据的函数方法前。如下:
import pytest
@pytest.mark.combination
class Test_numcombination:
@pytest.mark.parametrize('一',[1,2,3,4])
@pytest.mark.parametrize('二', [1,2,3,4])
@pytest.mark.parametrize('三', [1,2,3,4])
def test_contend(self,一,二,三):
print(f'{一}{二}{三}')
同一个测试用例还可以同时适用多个 @pytest.mak.paramtrize(),多个 paramtrize 的所有元素互相组合(类似笛卡儿乘积)生成大量测试用例,如上面代码可以实现数字的排列组合。
使用一个paramtrize时的参数如下登录时的格式:
class Test_错误登录:
@pytest.mark.parametrize('username, password, expectedalert', [
(None, '88888888', '请输入用户名'),
('byhy', None, '请输入密码'),
('byh', '88888888', '登录失败 : 用户名或者密码错误'),
('byhy', '8888888', '登录失败 : 用户名或者密码错误'),
('byhy', '888888888', '登录失败 : 用户名或者密码错误'),
]
)
调试
当需要调试增加断点时,使用下面的方法:
- 打开运行配置
- 点击+,添加一个运行配置
- 输入一个配置名,根据自己的需要输入
- 点击箭头选择 module name
- 并且输入 pytest 作为运行模块名
- 输入相应的命令参数,同命令窗口中的参数,如-sv
- 选择运行文件所在目录
- 点击OK