1. 程式人生 > 其它 >Pytest框架+Allure生成報告

Pytest框架+Allure生成報告

技術標籤:介面自動化UI自動化APP自動化python

Pytest框架+Allure生成報告

❶ Pytest測試框架

內容:

1.前言

pytest 是 python 的第三方單元測試框架,比自帶 unittest 更簡潔和高效,支援315種以上的外掛,同時相容 unittest 框架。這就使得我們在 unittest 框架遷移到 pytest 框架的時候不需要重寫程式碼。接下來我們在文中來對分析下 pytest 有哪些簡潔、高效的用法。

2. 環境搭建

首先使用 pip 安裝 pytest

pip install pytest

pip install pytest-html 原生態報告模板

檢視 pytest 是否安裝成功

pip show pytest

1.建立 test_sample.py 檔案,程式碼如下:

複製程式碼

#!/usr/bin/env python

# coding=utf-8

import pytest
def inc(x):
    return x + 1

def test_answer():
    assert inc(3) == 5

if __name__ =="__main__":
    pytest.main()

執行結果:

test_sample.py F                                                         [
100%] ================================== FAILURES =================================== _________________________________ test_answer _________________________________ def test_answer(): > assert inc(3) == 5 E assert 4 == 5 E + where 4 = inc(3) test_sample.py:19: AssertionError ==
============================ 1 failed in 0.41s ==============================

從上面的例子可以看出,pytest 中斷言的用法直接使用 assert ,和 unittest 中斷言 self.assert 用法有所區別。

3.pytest格式要求

在這裡插入圖片描述

2.總結一下:使用 pytest 執行測試需要遵行的規則:

執行:pytest 用例路徑 --html=./report/result.html 注意:–html= 沒有空格。

**還可以用main()方法來執行:**pytest.main([‘當前用例路徑’,’–html=測試報告/XX.html '])

在pytest中有四種setup和teardown,

  • 1、setup_module和teardown_module在整個測試用例所在的檔案中所有的方法執行前和執行後執行,只會執行一次;

  • 2、setup_class和teardown_class則在整個檔案中的一個class中所有用例的前後執行,

  • 3、setup_method和teardown_method在class內的每個方法執行前後執行,

  • 4、setup_function、teardown_function則是在非class下屬的每個測試方法的前後執行;

  • 執行:pytest test_login.py -s -s 輸出print資訊