安利一下pytest的mark用法

发表于:2019-7-01 13:13

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:乙醇    来源:测试圈TC

  昨天有同事分享了pytest的相关内容,忽然想起pytest在运行用例时有非常大的灵活性,很适合跟jenkins任务结合起来实现一些动态用例运行的效果。
  我们以下面这个非常简单的测试用例为例,说明一下如何使用pytest实现一些动态的测试策略
 
  上面例子里,我们使用 @pytest.mark装饰器定义了4种类型的用例,分别是p0/p1/p2/p3。按惯例,p0的用例是优先级最高的用例,p3优先级最低。
  场景1: 只运行p0的测试用例
  这个非常简单,在命令行中输入
 pytest runner_example.py-m p0
  这里runner_example.py是包含测试用例的名字,默认情况下pytest会认为所有名称以 test_开头的函数都是测试用例。
   运行结果
  符合预期。
  场景2: 只运行p0和p1的用例
  可以用or来实现。
 pytest runner_example. py - m "p0 or p1"
  -m参数后面可以接python的表达式,所以用or关键字就可以实现多选的效果了。
  运行结果
  
  可以看到运行了2个用例。
  场景3:运行除p0之外的所有用例
  还是用表达式,不过这次用的是not。
 pytest runner_example.py -m"not p0"
  运行结果
  总结
  我们可以使用@pytest.mark装饰器来给用例分类
  运行的时候使用-m,m是mark的意思,来运行某个或某些分类
  -m参数支持python表达式
  用or实现多选的效果
  用not实现反选的效果

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号