国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Pytest生成HTML測(cè)試報(bào)告

這篇具有很好參考價(jià)值的文章主要介紹了使用Pytest生成HTML測(cè)試報(bào)告。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

背景

最近開(kāi)發(fā)有關(guān)業(yè)務(wù)場(chǎng)景的功能時(shí),涉及的API接口比較多,需要自己模擬多個(gè)業(yè)務(wù)場(chǎng)景的自動(dòng)化測(cè)試(暫時(shí)不涉及性能測(cè)試),并且在每次測(cè)試完后能夠生成一份測(cè)試報(bào)告。

考慮到日常使用Python自帶的UnitTest,所以先從官方文檔下手,了解到有相關(guān)的TestTextRunner:https://docs.python.org/zh-cn/3/library/unittest.html?highlight=unittest#unittest.TextTestRunner。

自帶的TextTestRunner每次能把測(cè)試結(jié)果輸出到流中的測(cè)試運(yùn)行器,可以簡(jiǎn)單根據(jù)verbosity調(diào)整每次測(cè)試結(jié)果輸出的信息,但是都太基礎(chǔ)了,如果我想在測(cè)試過(guò)程中打印一些請(qǐng)求參數(shù)或者docstring,看了一下UnitTest內(nèi)置的方法,實(shí)現(xiàn)過(guò)程可能會(huì)比較繁瑣。

然后在網(wǎng)上找了一下輪子工具、html-testrunner、beautifulreport,這些工具生成的網(wǎng)頁(yè)css、js都是使用公網(wǎng)的CDN,由于內(nèi)網(wǎng)環(huán)境,不適合。

后面看了一些技術(shù)文章很多都是使用Pytest,之前有相關(guān)Pytest的基礎(chǔ)使用經(jīng)驗(yàn),大概了解一下,決定根據(jù)Pytest+pytest-html滿足當(dāng)前測(cè)試場(chǎng)景。

模塊安裝

pip install pytest
pip install pytest-html

方案設(shè)計(jì)

pytest.ini

首先定義pytest.ini(pytest的基礎(chǔ)配置文件,和測(cè)試文件在同一目錄,使用pytest命令時(shí)會(huì)先讀取該文件):

[pytest]
log_cli = True
log_cli_level = INFO

備注:開(kāi)啟日志消息打印,設(shè)置日志記錄捕獲的最低消息級(jí)別為INFO。

conftest.py

設(shè)置conftest.py(沒(méi)有自己創(chuàng)建,同樣是和測(cè)試文件同個(gè)目錄下,用于pytest-html生成測(cè)試報(bào)告的配置文件):


# --*-- coding: utf-8 --*--
from datetime import datetime
from py.xml import html
import pytest




def pytest_html_report_title(report):
    report.title = "測(cè)試報(bào)告"




def pytest_html_results_table_header(cells):
    cells.insert(2, html.th("Description"))
    cells.insert(1, html.th("Time", class_="sortable time", col="time"))
    cells.pop()




def pytest_html_results_table_row(report, cells):
    cells.insert(2, html.td(report.description))




def pytest_html_results_table_row(report, cells):
    cells.insert(2, html.td(report.description))
    cells.insert(1, html.td(datetime.utcnow(), class_="col-time"))
    cells.pop()




@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    report.description = str(item.function.__doc__)

通過(guò)設(shè)置鉤子函數(shù)分別修改測(cè)試報(bào)告的列,添加描述列、測(cè)試用例耗時(shí)時(shí)間列、刪除鏈接列,我這里是直接參考官方文檔中給出的示例:https://pytest-html.readthedocs.io/en/latest/user_guide.html#creating-a-self-contained-report,有興趣的可以研究一下。

測(cè)試用例

根據(jù)Pytest的官方文檔,Pytest同樣是支持UnitTest的功能,所以可以在原有的基礎(chǔ)上直接運(yùn)行Pytest:


# -*- coding: utf-8 -*-
# @Author: linshukai
# @Desc: pytestc測(cè)試用例
# @Date: 20220827


import unittest
import pytest
import logging


import requests




class TestString(unittest.TestCase):
    def test_upper_method(self):
        """
        測(cè)試字符串大寫
        """
        self.assertEqual("linshukai".upper(), "LINSHUKAI")
        logging.info("測(cè)試linshukai")


    def test_lower_method(self):
        """
        測(cè)試字符串小寫
        """
        self.assertEqual( "ZhangSan".lower(), "zhangsan")
        logging.info("測(cè)試ZhangSan")


    def test_count_method(self):
        """
        測(cè)試字符串長(zhǎng)度統(tǒng)計(jì)
        """
        self.assertEqual( len("zhangsan"), 8)
        logging.info("測(cè)試Zhangsan")




class TestString2(unittest.TestCase):


    def test_get_html(self):
        """
        測(cè)試請(qǐng)求網(wǎng)頁(yè)狀態(tài)碼是否正常
        """
        response = requests.get("http://www.baidu.com")
        self.assertEqual(response.status_code, 500)




if __name__ == "__main__":
    pytest.main(["pytest_example.py", "--html=report.html", "--self

備注:簡(jiǎn)單寫了幾個(gè)測(cè)試用例,需要特別說(shuō)明的是可以通過(guò)pytest.main()方法,直接在Python代碼中調(diào)用Pytest,所以我每次只需要執(zhí)行這個(gè)腳本就行,當(dāng)然也可以選擇在命令行界面通過(guò)Pytest命令調(diào)用指定測(cè)試文件執(zhí)行指定測(cè)試用例。

另外一個(gè)地方需要注意的是–self-contained-html這個(gè)參數(shù)主要是針對(duì)pytest-html模塊,由于默認(rèn)pytest-html中生成測(cè)試報(bào)告的網(wǎng)頁(yè)和CSS文件都是分開(kāi)來(lái)存儲(chǔ)的,如果想直接將css文件合并到html中,這樣分享測(cè)試報(bào)告的時(shí)候也更加方便,所以只需要加入這個(gè)參數(shù)即可–self-contained-html。

預(yù)期效果
使用Pytest生成HTML測(cè)試報(bào)告,pytest,軟件測(cè)試,程序人生,自動(dòng)化測(cè)試,python

?預(yù)期會(huì)出現(xiàn)的問(wèn)題

Pytest中使用requests,拋出錯(cuò)誤,但不影響測(cè)試結(jié)果,拋出的異常:

Windows fatal exception: code 1073807366

解決方式,降低Pytest為4.6.11版本后,異常就不會(huì)拋出,但是pytest-html需要6.0版本上的Pytest,由于不影響測(cè)試結(jié)果,更加完善的解決方法后續(xù)再研究。


? ? ? ? ? 【下面是我整理的2023年最全的軟件測(cè)試工程師學(xué)習(xí)知識(shí)架構(gòu)體系圖】


一、Python編程入門到精通

二、接口自動(dòng)化項(xiàng)目實(shí)戰(zhàn)??

使用Pytest生成HTML測(cè)試報(bào)告,pytest,軟件測(cè)試,程序人生,自動(dòng)化測(cè)試,python

三、Web自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

四、App自動(dòng)化項(xiàng)目實(shí)戰(zhàn)?

使用Pytest生成HTML測(cè)試報(bào)告,pytest,軟件測(cè)試,程序人生,自動(dòng)化測(cè)試,python

五、一線大廠簡(jiǎn)歷

六、測(cè)試開(kāi)發(fā)DevOps體系?

使用Pytest生成HTML測(cè)試報(bào)告,pytest,軟件測(cè)試,程序人生,自動(dòng)化測(cè)試,python

七、常用自動(dòng)化測(cè)試工具

八、JMeter性能測(cè)試?

使用Pytest生成HTML測(cè)試報(bào)告,pytest,軟件測(cè)試,程序人生,自動(dòng)化測(cè)試,python

九、總結(jié)(尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會(huì)被辜負(fù),只要堅(jiān)持不懈,終究會(huì)有回報(bào)。珍惜時(shí)間,追求夢(mèng)想。不忘初心,砥礪前行。你的未來(lái),由你掌握!

生命短暫,時(shí)間寶貴,我們無(wú)法預(yù)知未來(lái)會(huì)發(fā)生什么,但我們可以掌握當(dāng)下。珍惜每一天,努力奮斗,讓自己變得更加強(qiáng)大和優(yōu)秀。堅(jiān)定信念,執(zhí)著追求,成功終將屬于你!

只有不斷地挑戰(zhàn)自己,才能不斷地超越自己。堅(jiān)持追求夢(mèng)想,勇敢前行,你就會(huì)發(fā)現(xiàn)奮斗的過(guò)程是如此美好而值得。相信自己,你一定可以做到!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-618827.html

到了這里,關(guān)于使用Pytest生成HTML測(cè)試報(bào)告的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Pytest教程:Pytest如何生成測(cè)試報(bào)告

    一、pytest如何生成測(cè)試報(bào)告? pytest 是一個(gè)流行的 Python 測(cè)試框架,可以用于編寫和運(yùn)行各種類型的測(cè)試。與基于 unittest 的傳統(tǒng)測(cè)試框架相比,pytest 更加靈活和易于使用,并且支持各種插件擴(kuò)展功能。同時(shí),pytest 還提供了生成測(cè)試報(bào)告的功能,可以幫助開(kāi)發(fā)者更好地理解測(cè)試

    2024年02月10日
    瀏覽(18)
  • python代碼實(shí)現(xiàn)判斷三角形類型,使用pytest進(jìn)行代碼測(cè)試,生成allure測(cè)試報(bào)告

    python代碼實(shí)現(xiàn)判斷三角形類型,使用pytest進(jìn)行代碼測(cè)試,生成allure測(cè)試報(bào)告

    一、python代碼判斷三角形類型 寫代碼之前首先我們要知道滿足三角形的條件: 前提條件:三角形邊長(zhǎng)都為大于0的數(shù)字 構(gòu)成三角形:兩邊之和大于第三邊 即 a+b c? and a+cb and? b+ca? ?(此三個(gè)條件需要同時(shí)滿足) 滿足構(gòu)成三角形之后,要考慮構(gòu)成三角形的類型: 三角形分為:

    2024年02月05日
    瀏覽(26)
  • pytest-allure 生成測(cè)試報(bào)告

    pytest-allure 生成測(cè)試報(bào)告

    目錄 前言: pytest 中 yield 和 return 的區(qū)別和相同點(diǎn) 共同點(diǎn) 區(qū)別 usefixtures 與傳 fixture 區(qū)別 Pytest 常用的插件 一鍵安裝多個(gè)模塊 前言: 在軟件測(cè)試中,生成清晰、易讀的測(cè)試報(bào)告是非常重要的。pytest-allure是一個(gè)流行的測(cè)試框架和報(bào)告生成工具,它可以幫助測(cè)試團(tuán)隊(duì)生成美觀、

    2024年02月16日
    瀏覽(25)
  • pytest生成 junit-xml 測(cè)試報(bào)告

    pytest生成 junit-xml 測(cè)試報(bào)告

    pytest 生成junit-xml 測(cè)試報(bào)告,那么生成的xml報(bào)告有什么用呢?可以集合一些持續(xù)集成工具(如jenkins…等)方便查看報(bào)告。 命令行參數(shù)有2個(gè)跟 junit-xml 報(bào)告相關(guān)的參數(shù) ? --junit-xml=path ? ? ?create junit-xml style report file at given path. ? --junit-prefix=str ? ?prepend prefix to classnames in junit

    2024年02月10日
    瀏覽(15)
  • Pytest模式執(zhí)行python腳本不生成allure測(cè)試報(bào)告

    Pytest模式執(zhí)行python腳本不生成allure測(cè)試報(bào)告

    ?1.安裝allure 下載allure的zip安裝包 將allure.zip解壓到python的lib目錄中 將allure的bin路徑添加到環(huán)境變量path中(注意:配置環(huán)境變量后,一定要重啟電腦。因?yàn)榄h(huán)境變量沒(méi)生效,我搞了半天在pycharm不能生成報(bào)告,在cmd中可以生成報(bào)告) 安裝allure-pytest,命令為:? pip install allure-pytes

    2024年02月11日
    瀏覽(21)
  • 軟件測(cè)試Pytest實(shí)現(xiàn)接口自動(dòng)化應(yīng)該如何在用例執(zhí)行后打印日志到日志目錄生成日志文件?

    軟件測(cè)試Pytest實(shí)現(xiàn)接口自動(dòng)化應(yīng)該如何在用例執(zhí)行后打印日志到日志目錄生成日志文件?

    Pytest可以使用內(nèi)置的logging模塊來(lái)實(shí)現(xiàn)接口自動(dòng)化測(cè)試用例執(zhí)行后打印日志到日志目錄以生成日志文件。以下是實(shí)現(xiàn)步驟: 1、在pytest配置文件(conftest.py)中,定義一個(gè)日志輸出路徑,并設(shè)置logging模塊。 2、在測(cè)試用例中調(diào)用logging模塊,輸入需要生成的日志信息。 3、運(yùn)行p

    2024年02月10日
    瀏覽(35)
  • 【pytest】html報(bào)告修改和漢化

    【pytest】html報(bào)告修改和漢化

    Pytest框架可以使用兩種測(cè)試報(bào)告,其中一種就是使用pytest-html插件生成的測(cè)試報(bào)告,但是報(bào)告中有一些信息沒(méi)有什么用途或者顯示的不太好看,還有一些我們想要在報(bào)告中展示的信息卻沒(méi)有,最近又有人問(wèn)我pytest-html生成的報(bào)告,能不能漢化?答案是肯定的,那么今天就教大家

    2024年02月05日
    瀏覽(18)
  • pytest-html報(bào)告修改與漢化

    pytest-html報(bào)告修改與漢化

    目錄 前言 生成報(bào)告 測(cè)試代碼 原始報(bào)告 修改Environment 修改后的效果 修改Summary 修改后的效果 修改Results 優(yōu)化Test 解決中文亂碼 刪除多余部分 修改后的效果 刪除Links 修改后的效果 增加失敗截圖與用例描述 完整的conftest.py代碼 漢化報(bào)告 修改plugin.py 修改main.js 修改style.css 最后

    2024年02月16日
    瀏覽(18)
  • 軟件測(cè)試|詳解 Pytest 參數(shù)化:簡(jiǎn)化測(cè)試用例的編寫

    軟件測(cè)試|詳解 Pytest 參數(shù)化:簡(jiǎn)化測(cè)試用例的編寫

    簡(jiǎn)介 Pytest 是一個(gè)廣泛使用的 Python 測(cè)試框架,它提供了豐富的功能來(lái)編寫和執(zhí)行測(cè)試用例。其中一個(gè)強(qiáng)大的特性是參數(shù)化,它允許我們通過(guò)一種簡(jiǎn)潔的方式運(yùn)行多個(gè)輸入?yún)?shù)的相似測(cè)試用例,從而減少冗余的代碼。本文將詳細(xì)介紹 Pytest 的參數(shù)化功能以及如何使用它來(lái)簡(jiǎn)化測(cè)

    2024年01月20日
    瀏覽(29)
  • pytest測(cè)試框架——allure報(bào)告

    pytest測(cè)試框架——allure報(bào)告

    Allure 是由Java 語(yǔ)言開(kāi)發(fā)的一個(gè)輕量級(jí),靈活的測(cè)試報(bào)告工具。 Allure多平臺(tái)的 Report框架。 Allure 支持多語(yǔ)言,包括 python、JaveScript、PHP、Ruby 等。 可以為開(kāi)發(fā)/測(cè)試/管理等人員提供詳盡的的測(cè)試報(bào)告,包括測(cè)試類別、測(cè)試步驟、日志、圖片、視 頻等。 可以為管理層提供高水準(zhǔn)的

    2023年04月14日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包