mark标记

​在实际工作中,我们要写的自动化用例会比较多,也不会都放在一个py文件中,如果有几十个py文件,上百个方法,而我们只想运行当中部分的用例时怎么办?

​pytest提供了一个非常好用的mark功能,可以给测试用例打上各种各样的标签,运行用例时可以指定运行某个标签。mark功能作用就是灵活的管理和运行测试用例。

​标签既可以打到方法上,也可以打到类上,标记的两种方式:

直接标记类或方法或函数:@pytest.mark.标签名类属性:pytestmark = [pytest.mark.标签名, pytest.mark.标签名],需要注意的是属性名称是固定的

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import pytest @pytest.mark.beta   # 可以给类打标签 class TestLogin:    # 标记类     @pytest.mark.qc     @pytest.mark.beta   # 也可以多个标签     def test_login(self):   # 标记方法         pass @pytest.mark.smoke      # 单个标签 def test_register():    # 标记函数         pass class TestClass:     # 加一个 pytestmark的类属性     pytestmark = [pytest.mark.qc, pytest.mark.beta] # 标签存放在一个列表 pytest.main()

注册标签名

​我们要想运行已经打好标记的函数,还需要对标签名进行注册,告诉pytest有哪些标签,如果不进行注册运行时(pytest的高级版本)可能会报警告让你进行注册。

​我们只需要在项目根目录下创建一个pytest.ini文件,注意文件名是不可修改的,否则pytest会找不到。内容格式如下:

1 2 3 4 5 6 7 8 9 10 11 12 # pytest.ini # 只能修改=右边的值 [pytest]    python_files = demo_*.py    # 模块名以demo_开头 python_functions = demo_*   # 方法名以demo_开头 python_classes = Demo*  # 类名名以Demo开头 # 注册标签 markers =     qc     beta     smoke

运行指定的标签

通过命令行执行

​单个标签:pytest -m "标签名"(-m意思是执行标签mark),不想执行某个标签可以用not来取反,即pytest -m "not 标签名"

​多个标签:可以加上判断,pytest -m "qc and beta" 或者 pytest -m "qc or beta" 效果是一样的

​注意:标签名一定要加双引号,单引号是会报错的。

通过代码执行

​这里普及一下,main()方法是可以接收不定长参数的,因此可以把要执行的命令放在一个列表中

1 2 if __name__ == '__main__':     pytest.main(['-m qc and beta', '-s'])   # 标签名不需要加引号

关于pytest的指令,可以通过控制台执行pytest --help查看,上面举例中-s命令是指打印更加详细的信息,如果程序运行过程当中的print()信息打印不出来,可以加上-s可选参数,它是-- capture=no的缩写。

skip跳过标记

​在维护测试用例的过程中,可能在一个阶段某些用例已经不需要了,或者在指定条件下是不需要运行的,那么我们就可以通过mark.skip跳过这些函数或者类,两种跳过方式:

直接跳过: @pytest.mark.skip(reason = “原因”) ,这里原因是可选参数条件跳过,即满足某个条件才跳过:@pytest.mark.skipif(a == 1, reason = “原因”)

1 2 3 4 5 6 7 8 9 db_host = 'localhost' @pytest.mark.skip("和现在的需求不符合")  # 不满足当下了,或别人编写的暂时不能删的 def test_yuz(self):     pass @pytest.mark.skipif(db_host == 'localhost', reason='只测试线上环境,不测试本地环境') def test_develop_env(self):     pass

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

分享他们的经验,还会分享很多直播讲座和技术沙龙

可以免费学习!划重点!开源的!!!

qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: 


大家都在找:

pytest:pytest官网

python:python在线编程

软件测试:软件测试是干什么的

程序员:程序员工资一般多少

接口测试:接口测试用例

自动化测试:自动化测试是什么

测试工程师:测试工程师岗位职责

大家都在看: