Pytest框架(5) -- 标记测试用例
前言
当我们做项目的时候可能有非常多的用例,在一个项目里面,比如做app测试,web测试、接口测试都要做,为了管理方便放在一个项目里面。比如在做app自动化测试希望安卓ios共用一套代码框架,我们可以进行分类进行安卓ios分类执行。分类即在测试用例上面加上标记,运行时候运行标记名字相同的测试用例即可。做冒烟测试回归测试都可以为测试用例加上标签含义相同标签的测试用例就可以一块来执行。
Makk:标记测试用例
标记测试用例:在测试用例方法上加@pytest.mark.标签名,标签名要用英文。
执行:正常测试用例的后面加上-m参数,-m=标签名。也可以不加=号。也可以加逻辑运算符。
先来小试牛刀,上代码:
import pytest
def double(a):
return a * 2
# 测试数据:整形
@pytest.mark.int
def test_double_int():
print("test double int")
assert 2 ==double(1)
# 测试数据:负数
@pytest.mark.minus
def test_double_minus():
print("test double minus")
assert -2 ==double(-1)
# 测试数据:浮点数
@pytest.mark.float
def test_double_float():
print("test double float")
assert 0.2 ==double(0.1)
@pytest.mark.float
def test_double_float1():
assert -0.2 ==double(-0.1)
@pytest.mark.zero
def test_double_0():
assert 0 ==double(0)
@pytest.mark.bignum
def test_double_bignum():
print("test double float")
assert 200 ==double(100)
@pytest.mark.str
def test_double_str():
assert "aa" ==double("a")
@pytest.mark.str
def test_double_str1():
assert "a$a$" ==double("a$")
我们用pycharm打开命令行的方式执行一下:
输入命令执行:
注意:文件名.py。-vs表示打印详细日志。-m。以及标签的双引号。中间有空格要加引号,不然就是另外的参数了。
-s: 表示输出调试信息,包括print打印的信息
-v: 显示更详细的信息
-vs一起用就是显示输出更详细的打印信息
collected 7 items / 5 deselected / 2 selected 表示:收集上来7条,5条没有被命中,一条命中了。
5 deselected表示5条没有被命中,2条通过,后面的warning警告啥意思呢?
我们给测试用例加上标签名字之后,其实pttest是没有办法识别到标签名字的,pytest很多内置的标签(后面会讲),这里面我们给他定义了新的不同的标签(比如代码中bignum、minus等),这些标签都识别不到,识别不到就会抛出警告,不影响正常执行,也不是一个错误。那么怎么然他识别这个标签不报异常呢?
这里几种方式:https://blog.csdn.net/weixin_46731640/article/details/119214666
warning没了,就搞定了
上面做了测试用例条数(函数名称的修改),测试用例名称不要重复否则会默认为同1条。一共8条测试用例,标签名称相同的可以利用相同标签名去执行。
可以简单查看执行情况:pytest test01.py -vs
即可完成通过标签形式运行测试用例~~~~~~~~~~~搞定!!!!
初次执行报错问题
初次执行pycharm默认会去检测命令解释器,可能会存在如下报错:
解决办法:
即可解决报错问题。
清除执行数据:windoes用cls命令,linux才有clear。