pytest(2)-pytest-html測試報告


前言

上一篇文章pytest簡介中,執行測試用例后,在 pycharm 控制台(方式一)或 Terminal(方式二)中可以查看測試結果。但是在實際的接口自動化項目中一般需要生成直觀的測試報告,這個測試報告聚合了所有測試用例的執行情況。

在 pytest 中提供了生成html格式測試報告的插件 pytest-html

安裝

安裝命令如下:

pip install pytest-html

使用

我們已經知道執行用例的兩種方式,pytest.main()執行和命令行執行,而要使用pytest-html生成報告,只需要在執行時加入參數--html=報告完整路徑,所以同樣有兩種生成報告的方式。

  • 命令行生成

    # 指定報告名稱,生成在當前目錄下
    pytest --html=接口自動化測試報告.html
    
    # 指定報告生成路徑
    pytest --html=E:/report/接口自動化測試報告.html
    
  • pytest.main()生成

    使用pytest.main()同樣也可以生成測試用例,但需要注意,直接在測試用例里面執行pytest.main([--html=報告名稱.html"])不會生成測試報告,而是需要在項目執行文件如run.py中使用pytest.main([--html=接口自動化測試報告.html"]),然后再運行run.py文件,才會生成報告。例如:

    test_demo.py代碼如下

    import pytest
    import requests, json
    
    class TestDemo:
    
        def test_get_all_users(self):
            '''查詢所有用戶信息'''
            url = "http://127.0.0.1:5000/users"
            res = requests.get(url=url).text
            res = json.loads(res)
            assert res['code'] == 0
    
        def test_register(self):
            '''注冊用戶'''
            headers = {"Content-Type": "application/json;charset=utf8"}
            url = "http://127.0.0.1:5000/register"
            data = {
                "username": "張學友",
                "password": "123456",
                "sex": "0",
                "telephone": "13823456789",
                "address": "北京東城區"
            }
            res = requests.post(url=url, headers=headers, json=data).text
            res = json.loads(res)
            assert res['code'] == 0
    
    if __name__ == '__main__':
    	pytest.main(["--html=接口自動化測試報告.html"])
    

    這里直接運行test_demo.py不能生成測試報告,需要編寫專門的運行模塊,run.py代碼如下:

    import pytest
    
    if __name__ == '__main__':
          pytest.main(['--html=接口自動化測試報告.html'])
    

報告展示

運行后會生成 assets 的文件夾以及 .html 文件,.html 文件就是測試報告,結果如下:

在瀏覽器中打開后展示如下:

點擊報告Results中對應的測試用例,能展示具體的執行日志。

總結

使用pytest-html生成的測試報告相對較為簡潔,展示內容也相對精簡,對報告樣式要求不高的話完全夠用了。

當然,pytest 還可以結合 Allure 生成更為強大的測試報告,這個留后面探究。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM