• pytest


    前言

    pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结。
    allure报告可以很多详细的信息描述测试用例,包括epic、feature、story、title、issue、testcase、severity等
    环境准备

    • python 3.6
    • pytest 4.5.0
    • allure-pytest 2.8.6

    allure用例描述

    使用方法参数值参数说明
    @allure.epic() epic描述 敏捷里面的概念,定义史诗,往下是feature
    @allure.feature() 模块名称 功能点的描述,往下是story
    @allure.story() 用户故事 用户故事,往下是title
    @allure.title(用例的标题) 用例的标题 重命名html报告名称
    @allure.testcase() 测试用例的链接地址 对应功能测试用例系统里面的case
    @allure.issue() 缺陷 对应缺陷管理系统里面的链接
    @allure.description() 用例描述 测试用例的描述
    @allure.step() 操作步骤 测试用例的步骤
    @allure.severity() 用例等级 blocker,critical,normal,minor,trivial
    @allure.link() 链接 定义一个链接,在测试报告展现
    @allure.attachment() 附件 报告添加附件

    测试案例

    pytest结合allure测试用例

    import pytest
    import allure
    
    @pytest.fixture(scope="session")
    def login_fixture():
        print("前置条件:登录")
    
    
    @allure.step("步骤1")
    def step_1():
        print("操作步骤---------------1")
    
    
    @allure.step("步骤2")
    def step_2():
        print("操作步骤---------------2")
    
    
    @allure.step("步骤3")
    def step_3():
        print("操作步骤---------------3")
    
    
    @allure.epic("epic对大Story的一个描述性标签")
    @allure.feature("测试模块")
    class TestDemoAllure():
    
        @allure.testcase("http://49.235.x.x:8080/zentao/testcase-view-6-1.html")
        @allure.issue("http://49.235.x.x:8080/zentao/bug-view-1.html")
        @allure.title("用例的标题")
        @allure.story("用户故事:1")
        @allure.severity("critical")
        def test_case_1(self, login_fixture):
            '''case description:
            1.点文章分类导航标签 -跳转编辑页面
            2.编辑页面输入,分类名称,如:上海-悠悠-可以输入
            3.点保存按钮保存成功
            '''
            step_1()
            step_2()
    
        @allure.story("用户故事:2")
        def test_case_2(self, login_fixture):
            print("测试用例1")
            step_1()
            step_3()
    
    
    @allure.epic("epic对大Story的一个描述性标签")
    @allure.feature("模块2")
    class TestDemo2():
    
    
        @allure.story("用户故事:3")
        def test_case_3(self, login_fixture):
            print("测试用例1")
            step_1()
    
    
        @allure.story("用户故事:4")
        def test_case_4(self, login_fixture):
            print("测试用例1")
            step_3()
    

    报告展示

    cd到用例目录执行用例生成allure报告

    pytest --alluredir ./report/allure
    allure serve ./report/allure

    报告展示内容

    命令行参数

    pytest运行用例的时候可以加上allure标记用例的参数

    --allure-severities=SEVERITIES_SET
                            Comma-separated list of severity names. Tests only
                            with these severities will be run. Possible values
                            are: blocker, critical, normal, minor, trivial.
    --allure-epics=EPICS_SET
                            Comma-separated list of epic names. Run tests that
                            have at least one of the specified feature labels.
    --allure-features=FEATURES_SET
                            Comma-separated list of feature names. Run tests that
                            have at least one of the specified feature labels.
    --allure-stories=STORIES_SET
                            Comma-separated list of story names. Run tests that
                            have at least one of the specified story labels.
    --allure-link-pattern=LINK_TYPE:LINK_PATTERN
                            Url pattern for link type. Allows short links in test,
                            like 'issue-1'. Text will be formatted to full url
                            with python str.format().
    

    选择运行你要执行epic的用例

    pytest --alluredir ./report/allure --allure-epics=epic对大Story的一个描述性标签

    选择运行你要执行features的用例

    pytest --alluredir ./report/allure --allure-features=模块2

    选择运行你要执行features的用例

    pytest --alluredir ./report/allure --allure-stories="用户故事:1"

  • 相关阅读:
    【LCA】BZOJ1832 & BZOJ1787(AHOI)-集会
    【线段树+离散化】POJ2528-Mayor's posters
    JavaScript Array 整理
    常见的原生javascript DOM操作
    javascript中执行环境和作用域(js高程)
    javascript作用域链
    javascript执行环境及作用域
    [转]深入javascript——原型链和继承
    [转]深入javascript——构造函数和原型对象
    Java接口中的成员变量为什么必须声明为public static final?
  • 原文地址:https://www.cnblogs.com/jodie2019/p/13235342.html
Copyright © 2020-2023  润新知