python + allure生成测试报告

Posted yanpan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python + allure生成测试报告相关的知识,希望对你有一定的参考价值。

首先我们需要在python环境上安装pytest库,这里建议通过pip安装:pip install pytest

技术图片

 

然后编写一个简单的pytest测试用例,这里我们需要满足以下条件

  • 测试文件以test_开头(以_test结尾也可以)

  • 测试类以Test开头,并且不能带有 init 方法

  • 测试函数以test_开头

  • 断言使用基本的assert即可

 

编写简单代码如下,test_sample.py

import pytest

class TestClass(object):

   @pytest.fixture(scope=‘function‘)

   def setup_function(request):

       def teardown_function():

           print("teardown_function called.")

       request.addfinalizer(teardown_function)  # 此内嵌函数做teardown工作

       print(‘setup_function called.‘)

 

   @pytest.fixture(scope=‘module‘)

   def setup_module(request):

       def teardown_module():

           print("teardown_module called.")

       request.addfinalizer(teardown_module)

       print(‘setup_module called.‘)

 

   @pytest.mark.website

   def test_1(setup_function):

       print(‘Test_1 called.‘)

 

   def test_2(setup_module):

       print(‘Test_2 called.‘)

 

   def test_3(setup_module):

       print(‘Test_3 called.‘)

       assert 2==1+1              # 通过assert断言确认测试结果是否符合预期

 

调用pytest,只需要在命令行里定位到测试文件所在路径,然后运行pytest即可

技术图片

 

 

接下来,我们引入Allure 来生成漂亮的报告。

同样,也是通过pip来安装allure插件:

pip install allure-pytest

 技术图片

 

 

接着下载allure:2.7.0版本

https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.7.0/allure-2.7.0.zip

解压之后,将allure/bin目录添加到环境变量path中:

 

技术图片

 

 

接着,在测试脚本中,添加allure特性,直接看下面的脚本,我通过在脚本中添加注释的方式给大家解释allure特性的用途。

import pytest
import allure

@allure.feature(‘测试用例功能‘)  # feature定义功能
class TestClass(object):

   @pytest.fixture(scope=‘function‘)
   def setup_function(request):
       def teardown_function():
           print("teardown_function called.")
       request.addfinalizer(teardown_function)  # 此内嵌函数做teardown工作
       print(‘setup_function called.‘)

   @pytest.fixture(scope=‘module‘)
   def setup_module(request):
       def teardown_module():
           print("teardown_module called.")
       request.addfinalizer(teardown_module)
       print(‘setup_module called.‘)

   @allure.story(‘功能测试用例1‘)  # story定义用户场景
   @pytest.mark.website
   def test_1(setup_function):
       print(‘Test_1 called.‘)

   @allure.story(‘功能测试用例2‘)  # story定义用户场景
   def test_2(setup_module):
       print(‘Test_2 called.‘)

   @allure.story(‘功能测试用例3‘)  # story定义用户场景
   def test_3(setup_module):
       print(‘Test_3 called.‘)
       assert 2==1+1              # 通过assert断言确认测试结果是否符合预期

 

运行pytest --alluredir ./result/去生成测试结果

 技术图片

 

该目录下为测试结果

 技术图片

 

接下来,用allure generate ./result/ -o ./report/ --clean命令将测试结果生成测试报告

技术图片

 

该目录下为测试报告所在,直接打开该报告有点问题,我们需要在pycharm中通过右键点击用浏览器打开

 

 技术图片

 

以上是关于python + allure生成测试报告的主要内容,如果未能解决你的问题,请参考以下文章

python自动化之如何利用allure生成测试报告

python自动化之如何利用allure生成测试报告

Pytest+Allure生成自动化测试报告

Allure+pytest 生成测试报告

python + allure生成测试报告

Python测试框架pytest(28)测试报告Allure - 动态生成标题动态生成功能报告添加用例失败截图