zoukankan      html  css  js  c++  java
  • pytest

    https://www.cnblogs.com/poloyy/category/1690628.html

    1|0前言

    • 前面几篇文章主要介绍了allure的特性,这篇文章我们就来讲下allure的标记用法
    • 有时候我们写pytest的时候,会用到 @pytest.mark 但并不会显示在allure报告上
    • 而allure也提供了三种类型的标记装饰器,它们是可以显示在allure报告上的

    2|0allure的标记装饰器

    • BDD样式的标记装饰器
    • 优先级(严重程度)标记装饰器
    • 自定义标记装饰器

    3|0BDD标记装饰器

    提供了两个装饰器

    • @allure.feature

    • @allure.story 

    3|1直接上代码栗子

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = __Time__ = 2020-04-19 14:27 __Author__ = 小菠萝测试笔记 __Blog__ = https://www.cnblogs.com/poloyy/ """ import allure def test_without_any_annotations_that_wont_be_executed(): pass @allure.story('epic_1') def test_with_epic_1(): pass @allure.story('story_1') def test_with_story_1(): pass @allure.story('story_2') def test_with_story_2(): pass @allure.feature('feature_2') @allure.story('story_2') def test_with_story_2_and_feature_2(): pass

    3|2我们先看看没有设置标记装饰器时,allure报告是咋样的

     

    3|3加了@allure.feature和@allure.story之后,allure报告又是怎么样的呢

    3|4知识点

    story是feature的子集,当测试用例有 @allure.feature、@allure.story 时,在报告上会先显示feature,点开之后再显示story【可以想象成,安徒生童话(feature)有很多个童话故事(story)】

    如果不加 @allure.feature、@allure.story 时,在Behaviors栏目下,测试用例都不会分类显示,当用例多的时候可能看的花里胡哨

    3|5总结

    倘若是用pytest+allure写项目的话,又想用@pytest.mark.xxx 来自定义标记的话可以尝试用 @allure.feature、@allure.story 替换,毕竟可以显示在报告上

    3|6问题来了,用命令行方式运行时,可以指定运行某个story或者feature吗?

    答案是:当然可以!!跟@pytest.mark.xxx没啥区别哦!!

    • --allure-features
    • --allure-stories

    3|7譬如

    pytest tests.py --allure-stories story_1,story_2
    pytest tests.py --allure-features feature2 --allure-stories story2

    4|0@ allure.severity

    作用:按严重性(优先级)来标记测试用例,它使用allure.severity_level枚举值作为参数

    4|1先看看枚举类有哪些常量

    严重程度最高blocker,最低trivial

    class Severity(str, Enum): BLOCKER = 'blocker' CRITICAL = 'critical' NORMAL = 'normal' MINOR = 'minor' TRIVIAL = 'trivial'

    4|2看看代码栗子

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = __Time__ = 2020-04-19 14:50 __Author__ = 小菠萝测试笔记 __Blog__ = https://www.cnblogs.com/poloyy/ """ import allure def test_with_no_severity_label(): pass @allure.severity(allure.severity_level.TRIVIAL) def test_with_trivial_severity(): pass @allure.severity(allure.severity_level.NORMAL) def test_with_normal_severity(): pass @allure.severity(allure.severity_level.NORMAL) class TestClassWithNormalSeverity(object): def test_inside_the_normal_severity_test_class(self): pass @allure.severity(allure.severity_level.CRITICAL) def test_inside_the_normal_severity_test_class_with_overriding_critical_severity(self): pass

    4|3运行结果,查看allure报告

    其实就是测试用例多了个优先级severity属性而已...

    4|4命令行方式

    也可以通过命令行参数运行指定severity的测试用例哦

    pytest tests.py --allure-severities normal,critical

     
  • 相关阅读:
    js实现倒数 —— ‘剩下多少天多少秒’
    CSS单位,em,rem以及元素的宽度和高度
    基于原生JS+node.js+mysql打造的简易前后端分离用户登录系统
    隐藏微信小程序剪贴板提示
    微信小程序实现多选分享
    微信小程序开发过程中出现问题及解答
    Visual Studio Code 使用指南
    openLayers 4 canvas图例绘制,canvas循环添加图片,解决图片闪烁问题
    微信小程序个人/企业开放服务类目一览表
    微信小程序日常开发中常遇到的错误代码
  • 原文地址:https://www.cnblogs.com/jodie2019/p/13336015.html
Copyright © 2011-2022 走看看