最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytest生成簡(jiǎn)單自定義測(cè)試結(jié)果的html報(bào)告

 更新時(shí)間:2022年06月09日 16:04:09   作者:Lsir  
這篇文章主要為大家介紹了pytest生成簡(jiǎn)單自定義測(cè)試結(jié)果html報(bào)告,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

簡(jiǎn)介

pytest-HTML 是一個(gè)插件,pytest 用于生成測(cè)試結(jié)果的 HTML 報(bào)告。

生成報(bào)告

先簡(jiǎn)單寫(xiě)個(gè)例子生成報(bào)告看看。

生成報(bào)告效果如下

此次主要是針對(duì) Environment 和 Results 兩部分進(jìn)行修改配置,讓列表部分展示的數(shù)據(jù)更清晰,增加和刪減列數(shù)據(jù)。

修改報(bào)告

這里先介紹下 conftest.py 文件,主要作用如下:

  • 1 .存放你的 fixture 函數(shù)
  • 2.在里面寫(xiě)自己的本地插件

比如公共用例前置和后置部分,數(shù)據(jù)清理都可以放在該文件里執(zhí)行。

修改 Environment

主要分為增加配置或刪除配置:

def pytest_configure(config):
    # 添加配置
    config._metadata["項(xiàng)目名稱(chēng)"] = "測(cè)試報(bào)告"
    # 刪除配置
    config._metadata.pop("JAVA_HOME")
    config._metadata.pop("Plugins")
    config._metadata.pop("Packages")
    config._metadata.pop("Platform")

修改 Results

從上面生成的報(bào)告列表中,看到主要分為下面幾列數(shù)據(jù):Result、Test、Links、Duration。這里面的數(shù)據(jù)其實(shí)可以看出都沒(méi)有包含我們的測(cè)試數(shù)據(jù),無(wú)法直觀看出輸入、輸出結(jié)果。
做如下優(yōu)化:

  • 1.刪除 Test、Links 列
  • 2.增加幾列分別展示參數(shù)化中的內(nèi)容,如用例編號(hào)、輸入、輸出
  • 3.修改用例執(zhí)行結(jié)果 show details 中內(nèi)容,自定義展示內(nèi)容

基于上述需求,要在報(bào)告中添加我們自己的測(cè)試數(shù)據(jù)展示,故需要添加一個(gè)全局變量在一個(gè) case 執(zhí)行過(guò)程中進(jìn)行記錄供調(diào)用。

創(chuàng)建全局變量:

# 定義一個(gè)全局變量,用于存儲(chǔ)內(nèi)容
global_data = {}
@pytest.fixture(scope="function")
def set_global_data():
    """
    設(shè)置全局變量,用于關(guān)聯(lián)參數(shù)
    :return:
    """
    def _set_global_data(key, value):
        global_data[key] = value
    yield _set_global_data
    global_data.clear()

修改我們的用例函數(shù),將測(cè)試數(shù)據(jù)加入到全局變量中。

@user2ize("data", case_list)
def test_case(data, set_global_data):
    set_global_data("id", data.get("id"))
    set_global_data("method", data.get("method"))
    set_global_data("case_input", data.get("case_input"))
    set_global_data("case_output", data.get("case_output"))
    try:
        assert data.get("case_input") == data.get("case_output")
    except AssertionError:
        set_global_data("error_step", "斷言失敗")
        raise

conftest.py 文件中增加和刪除列。

@user3hook
def pytest_html_results_table_header(cells):
    """ 更改表頭信息
    :param cells:
    :return:
    """
    cells.insert(1, html.th('用例ID', class_="sortable", col="id"))
    cells.insert(2, html.th('方法', class_="sortable", col="method"))
    cells.insert(3, html.th('輸入', class_="sortable", col="case_input"))
    cells.insert(4, html.th('輸出', class_="sortable", col="case_output"))
    cells.pop(-1)  # 刪除link
    cells.pop(-2)  # 刪除Test
@user4hook
def pytest_html_results_table_row(cells):
    """更改表中數(shù)據(jù)信息"""
    cells.insert(1, html.td(global_data.get("id")))
    cells.insert(2, html.td(global_data.get("method")))
    cells.insert(3, html.td(global_data.get("case_input")))
    cells.insert(4, html.td(global_data.get("case_output")))
    cells.pop(-1)  # 刪除link
    cells.pop(-2)  # 刪除Test

conftest.py 文件中修改執(zhí)行結(jié)果 show details 內(nèi)容。

@user5hook
def pytest_html_results_table_html(report, data):
    if report.failed:
        del data[:]
        data.append(html.span(f"失敗步驟:{global_data.get('error_step')}\n輸出結(jié)果:{global_data.get('case_output')}",
                              class_='fail log'))
    elif report.passed:
        del data[:]
        data.append(html.div(f"輸出結(jié)果:{global_data.get('case_output')}", class_='success log'))

生成效果報(bào)告

可以看到現(xiàn)在生成的報(bào)告內(nèi)容就可以清晰看到測(cè)試數(shù)據(jù),和我們的用例數(shù)據(jù)關(guān)聯(lián)上了。

后記

當(dāng)前只是簡(jiǎn)單的對(duì)報(bào)告展示的數(shù)據(jù)進(jìn)行了更改,感興趣可以查看官方文檔學(xué)習(xí)

https://docs.pytest.org/en/latest/reference/reference.html#hooks

以上就是pytest生成簡(jiǎn)單自定義測(cè)試結(jié)果html報(bào)告的詳細(xì)內(nèi)容,更多關(guān)于pytest生成自定義測(cè)試html的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python smtplib實(shí)現(xiàn)發(fā)送郵件功能

    Python smtplib實(shí)現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了Python smtplib實(shí)現(xiàn)發(fā)送郵件功能,包含文本、附件、圖片等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python操作gmail實(shí)例

    python操作gmail實(shí)例

    這篇文章主要介紹了python操作gmail的方法,實(shí)例分析了python針對(duì)gmail操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • python模擬登錄百度代碼分享(獲取百度貼吧等級(jí))

    python模擬登錄百度代碼分享(獲取百度貼吧等級(jí))

    python模擬登錄百度,實(shí)現(xiàn)了登錄并讀取百度關(guān)注貼吧列表,百度登錄還是有點(diǎn)麻煩的,由于用的ssl,所以要先獲取token,然后再登錄,這個(gè)用finddle2分析下,還是比較好解決的
    2013-12-12
  • Python中格式化字符串輸出的4種方式小結(jié)

    Python中格式化字符串輸出的4種方式小結(jié)

    本文主要介紹了Python中格式化字符串輸出的4種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Django實(shí)現(xiàn)celery定時(shí)任務(wù)過(guò)程解析

    Django實(shí)現(xiàn)celery定時(shí)任務(wù)過(guò)程解析

    這篇文章主要介紹了Django實(shí)現(xiàn)celery定時(shí)任務(wù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析

    關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析

    這篇文章主要介紹了關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析,Spring的@Bean注解用于告訴方法,產(chǎn)生一個(gè)Bean對(duì)象,然后這個(gè)Bean對(duì)象交給Spring管理,產(chǎn)生這個(gè)Bean對(duì)象的方法Spring只會(huì)調(diào)用一次,需要的朋友可以參考下
    2023-07-07
  • Python中生成不重復(fù)ID的方法小結(jié)

    Python中生成不重復(fù)ID的方法小結(jié)

    在軟件開(kāi)發(fā)中,生成不重復(fù)的ID是一個(gè)常見(jiàn)的需求,Python中提供了多種方法來(lái)生成不重復(fù)的ID,本文將介紹幾種常見(jiàn)且實(shí)用的方法,希望對(duì)大家有所幫助
    2025-01-01
  • python中有幫助函數(shù)嗎

    python中有幫助函數(shù)嗎

    在本篇文章里小編給大家分享的是一篇關(guān)于python幫助函數(shù)詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • python處理二進(jìn)制數(shù)據(jù)的方法

    python處理二進(jìn)制數(shù)據(jù)的方法

    這篇文章主要介紹了python處理二進(jìn)制數(shù)據(jù)的方法,涉及Python針對(duì)二進(jìn)制數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06
  • 基于matplotlib中ion()和ioff()的使用詳解

    基于matplotlib中ion()和ioff()的使用詳解

    這篇文章主要介紹了基于matplotlib中ion()和ioff()的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論

阿克陶县| 达孜县| 凯里市| 凭祥市| 册亨县| 阳高县| 镇赉县| 北辰区| 同心县| 台南市| 怀仁县| 礼泉县| 杂多县| 张家口市| 德令哈市| 华蓥市| 庐江县| 龙井市| 微山县| 莲花县| 延寿县| 哈巴河县| 沐川县| 兴化市| 清原| 延川县| 托克逊县| 若尔盖县| 寿阳县| 永善县| 吴川市| 鸡西市| 花莲市| 宜章县| 新乡县| 剑川县| 蛟河市| 富顺县| 图木舒克市| 托里县| 抚远县|