好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

jenkins+pytest+allure

1. pytest测试代码

import pytest
import allure


class Test_ABC:

        @pytest.fixture()
        def before(self):
                print("------->before")
                yield
                print("------->after")

        @allure.feature("分类1")
        def test_a(self, before):  # test_a方法传入了被fixture标识的函数,已变量的形式
                print("------->test_a")
                assert 1

        @allure.feature("分类1")
        def test_b(self):
                print("------->test_b")
                assert 1

        @allure.feature("分类2")
        def test_c(self):
                print("------->test_c")
                assert 1

        @allure.feature("分类2")
        @pytest.mark.parametrize(('x', 'y'),
                                 [(4, 4), (5, 5), (3, 3)])
        def test_simple_assume(self, x, y):  # 执行多个断言需要安装pytest-assume
                print("测试数据x=%s, y=%s" % (x, y))
                pytest.assume(x == y)
                pytest.assume(x + y > 2)
                pytest.assume(x > 1)
                print("测试完成!")


if __name__ == '__main__':
        pytest.main(['-s', 'test_demo.py', "--alluredir=report"])

2. jenkins配置

构建-执行shell命令

#!/bin/bash
/usr/local/bin/pytest -s -q --alluredir=/Users/xxx/Documents/myjenkins/workspace/test_allure/report_test --clean-alluredir /Users/xxx/Documents/myresource/test/test_demo.py  
/usr/local/bin/allure generate --clean /Users/xxx/Documents/myjenkins/workspace/test_allure/report_test -o /Users/xxx/Documents/myjenkins/workspace/test_allure/report_test2

3. allure配置

需要安装Allure插件

附录:allure定制化相关注解

1.feature——测试用例特性(主要功能模块)

  使用方法:@allure.feature()

2.story——feature功能模块下的分支功能

  使用方法:@allure.story()  

3.severity——测试用例的重要级别

  Allure中对严重级别的定义:

blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作) critical级别:临界缺陷( 功能点缺失) normal级别:普通缺陷(数值计算错误) minor级别:次要缺陷(界面错误与UI需求不符) trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

  使用方法:@allure.severity(allure.severity_level.CRITICAL)  或者  @allure.severity('critical')

  4.step——测试用例的步骤

  使用方法:1.@allure.step()  只能以装饰器的形式放在类或者方法上面  2.with allure.step():  可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含

5.attach——用于向测试报告中输入一些附加的信息,通常是一些测试数据信息

  使用方法:allure.attach(body, name, attachment_type, extension)

body  - 要写入文件的原始内容。 name  - 包含文件名的字符串 attachment_type  - 其中一个 allure.attachment_type 值 extension  - 提供的将用作创建文件的扩展名

6.link/issue/testcase——链接

  使用方法:

@allure.link() @allure.issue() @allure.testcase()

7.description——用例描述

  使用方法:

@allure.description()  提供描述字符串的装饰器 @allure.description_html()  提供一些HTML在测试用例的描述部分

查看更多关于jenkins+pytest+allure的详细内容...

  阅读:25次