测试框架-Pytest框架三(用例的挑选和数据驱动)

目录

用例的挑选执行

数据驱动

调试


用例的挑选执行

指定模块执行:pytest后面跟模块文件名(文件名包括后缀扩展)。

指定目录执行:pytest后面跟目录名,可以同时指定多个目录文件执行,但是目录中的文件名不能出现重复。

指定类执行:pytest后面跟文件名::类名

指定方法执行:pytest后面跟文件名::类名::函数方法名

根据名字执行:pytest -k 名字(-k参数的使用,后面为名字)

  1. 名字可以是测试函数名、类名、模块名、目录名
  2. 同样遵循python中大小写敏感的原则
  3. 不需要完整,只要可以匹配即可
  4. 可以使用not 表示选择的名字中不包含:如,pytest -k “not 001”,即名字中包含001除外的其他都被执行(使用not\and\or时只能用英文双引号)
  5. 可以使用and 、or挑选用例:如,pytest -k “001 and 002”
  6. 根据标签挑选执行:在使用标签方法挑选用例的时候,需要用到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('行到水穷处,坐看云起时')

执行结果:

标签的添加方法

  1. 使用装饰器添加:@pytest.mark.name
  2. name指的是标签名,可以是中文
  3. 一个用例可以添加多个标签
  4. 标签可以添加到单个测试用例前,赋予此用例这个标签,也可以是添加到class类前表示此类下面的所有的测试用例都具有此标签的性质,还可以给整个测试文件添加标签
  5. 测试文件添加标签的方法,在文件的最上面,即所有类的最前面,使用固定的变量pytestmark,并给此标签赋值,值为pytest.mark.name,如果是给文件添加多个标签,则需要使用列表的方法将所有标签放进列表,如pytestmark = [pytest.mark.name1,pytest.mark.name2]
  6. 运行时需要使用参数-m,pytest -m 标签名
  7. 运行时通过标签挑选用例的同样可以使用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', '登录失败 : 用户名或者密码错误'),
    ]
                             )

调试

当需要调试增加断点时,使用下面的方法:

  1. 打开运行配置
  2. 点击+,添加一个运行配置
  3. 输入一个配置名,根据自己的需要输入
  4. 点击箭头选择 module name
  5. 并且输入 pytest 作为运行模块名
  6. 输入相应的命令参数,同命令窗口中的参数,如-sv
  7. 选择运行文件所在目录
  8. 点击OK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值