<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      Python自帶單元測試框架UnitTest,如何生成獨立的測試報告?

      0
      分享至

      前言

      當我們在公司跑UI自動化的時候,一般都會選擇晚上或者工作日休息時進行運行。那么當程序這時運行,如果自動化出現錯誤,我們又不知道當時頁面是什么原因導致測試用例失敗,怎么辦?

      這個時候我們就想到在其測試用例失敗的時候,進行自動截圖當時圖片,然后保存下來,這樣當測試人員后面查看測試報告時,就可以很清楚的看到當時錯誤內容,然后排查測試用例失敗的原因。



      今天小編就介紹幾種在自動化測試報告中增加測試用例失敗的截圖的方法,這里小編運用了UI自動化測試中常用的兩種單元測試框架,進行為其增加在測試報告中增加其失敗截圖。

      UnitTest

      UnitTest屬于早期的Python的單元測試,其功能雖然沒有Pytest強大,但也能符合并滿足我們當時的功能需求,UnitTest屬于Python自帶的單元測試框架,類似于Java的JUnit。

      UnitTest支持編寫測試自動化用例,多個用例中共享一個前置和后置內容,有多種執行測試用例的方法,支持生成獨立的測試報告內容。

      具體詳情可以了解官方文檔:https://docs.python.org/2/library/unittest.html

      UnitTest生成的測試報告常見的有HTMLTestrunner,這個是屬于Python的一個標準庫,需要下載,下載完成后使用時候,直接進行調用即可。

      HTMLTestrunner支持截圖功能,需要二次開發,具體開發內容小編就不做太多介紹,小編從網上下載一個開源的HTMLTestrunner,存放在我們的測試路徑下,接下來就直接使用代碼進行調用:

      #coding:utf-8

      import unittest

      import HTMLTestRunner_cn

      fromseleniumimport webdriver

      class Test(unittest.TestCase):

      @classmethod

      def setUpClass(cls):

      cls.driver=webdriver.Chrome()

      @classmethod

      def tearDownClass(cls):

      cls.driver.quit()

      def test_01(self):

      """定位失敗截圖案例"""

      self.driver.get("https://www.baidu.com")

      self.driver.find_element_by_id('anjing').send_keys('百度一下')

      self.driver.find_element_by_id('su').click()

      self.assertTrue(True)

      def test_02(self):

      """成功案例"""

      self.driver.get("https://www.baidu.com")

      self.assertIn("百度一下,你就知道",self.driver.title)

      if__name__=="__main__":

      testunit=unittest.TestSuite()

      #加載用例

      testunit.addTests(unittest.TestLoader().loadTestsFromTestCase(Test))

      #執行用例

      runner=HTMLTestRunner_cn.HTMLTestRunner(title="自動化測試報告",

      description="測試結果",

      stream=open("result.html","wb"),

      runner.run(testunit)

      代碼編寫完成后,直接進行執行程序,執行完成后,就會發現我們測試報告已經生成了,直接打開就可以看到自動化測試結果,失敗的存在截圖信息。



      Pytest

      Pytest是一個使創建簡單及可擴展性測試用例變得非常方便的框架,測試用例清晰、易讀而無需大量的繁瑣代碼。

      只要幾分鐘你就可以對你的應用程序或者庫展開一個小型的單元測試或者復雜的功能測試。Pytest支持第三方插件,靈活性較高。

      這里小編通過Pytest生成的Allure報告中添加測試報告內容。其中Allure屬于一種開源的測試框架,可以基于多種語言進行使用,如Java的JUnit、Python的Pytest。

      alluer生成的報告內容比較美觀,目前測試中常用的測試報告。Allure的環境是基于Java環境的,前提條件需要將Java的環境安裝完成(下載JDK,配置環境變量)。

      下載地址:https://github.com/allure-framework/allure2(具體安裝不在過多介紹)。

      我們需要在conftest.py文件中去收集Pytest測試用例中失敗的結果,小編這里選擇用pytest_runtest_makereport函數來幫忙實現。

      #conftest.py

      from selenium import webdriver

      import pytest

      import time

      import allure

      te=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())

      @pytest.hookimpl(tryfirst=True,hookwrapper=True)

      def pytest_runtest_makereport(item,call):

      #獲取鉤子方法的調用結果

      outcome=yield

      rep=outcome.get_result()

      #僅僅獲取用例call執行結果是失敗的情況

      if rep.when=="call"and rep.failed:

      #添加allure報告截圖

      with allure.step('失敗截圖:'):

      #將截圖添加到報告中,圖片名稱已當前時間。

      allure.attach(d.get_screenshot_as_png(),name=te,

      attachment_type=allure.attachment_type.PNG)

      #配置瀏覽器驅動,不顯示瀏覽器執行過程

      @pytest.fixture(scope="session")

      def driver():

      global d

      options=webdriver.ChromeOptions()

      options.add_argument("--headless")

      d=webdriver.Chrome(options=options)

      yield d

      d.quit()

      編寫兩個簡單的測試用例,一個測試用例失敗,一個測試用例成功。

      #coding:utf-8

      def test_01(driver):

      #失敗案例

      driver.get('https://www.baidu.com/')

      driver.find_element_by_id('kw').send_keys('51testing軟件測試網')

      t=driver.title

      assert t=='51testing軟件測試網'

      def test_02(driver):

      #成功案例

      driver.get('https://www.baidu.com/')

      driver.find_element_by_id('kw').send_keys('安靜')

      t=driver.title

      assert t=='百度一下,你就知道'

      然后運行Pytest并且生成Allure報告,查看到Allure報告中,已經將對應的失敗截圖已經添加到其中了。



      總結

      小編分別通過UnitTest和Pytest在測試用例中增加對應的失敗截圖功能,其中關于UnitTest比較簡單,直接在網上查找對應的Htmltestrunner報告就可以了。

      但是在Allure報告中添加失敗截圖,需要在conftest.py中進行對現有的函數進行二次開發,不過開發比較簡單,主要在于孰能生巧。

      當然具體怎么在對應項目中使用,這個就要看小伙伴們的操作了。感謝您的閱讀,希望本篇文章對您有所幫助。

      最后:在我的V:atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      “排隊槍斃” 戰術看似笨拙,歐洲卻憑此稱霸全球?真的只因陣型密集、射擊精準嗎?

      “排隊槍斃” 戰術看似笨拙,歐洲卻憑此稱霸全球?真的只因陣型密集、射擊精準嗎?

      寄史言志
      2026-02-08 23:05:04
      “資助不起裝什么孫子!”2006年,貧困大學生向海清向媒體怒斥

      “資助不起裝什么孫子!”2006年,貧困大學生向海清向媒體怒斥

      百態人間
      2026-02-05 15:42:49
      經常放屁就是腸炎?醫生叮囑:這5個表現一旦出現,基本可以確診

      經常放屁就是腸炎?醫生叮囑:這5個表現一旦出現,基本可以確診

      阿兵科普
      2026-02-09 18:31:43
      在中國,只要花錢就納稅!2024年人均稅收1.25萬元…

      在中國,只要花錢就納稅!2024年人均稅收1.25萬元…

      慧翔百科
      2026-02-05 15:44:35
      三分鐘看懂史記“刺客天團”:五個狠人把歷史捅出了大窟窿!

      三分鐘看懂史記“刺客天團”:五個狠人把歷史捅出了大窟窿!

      混知
      2026-02-09 14:40:08
      機構大客戶選擇落袋為安 一批績優基金節前清盤

      機構大客戶選擇落袋為安 一批績優基金節前清盤

      財聯社
      2026-02-09 07:45:44
      南博《江南春》圖卷調查結果:估計8800萬,2250元賣出

      南博《江南春》圖卷調查結果:估計8800萬,2250元賣出

      深度財線
      2026-02-09 23:16:44
      A股:今天收在4123,信號很明確,不出意外,2月10日,可能這樣走

      A股:今天收在4123,信號很明確,不出意外,2月10日,可能這樣走

      夜深愛雜談
      2026-02-09 18:02:47
      熱身賽:U19國青1-1烏茲別克斯坦U19,兩戰1勝1平保持不敗

      熱身賽:U19國青1-1烏茲別克斯坦U19,兩戰1勝1平保持不敗

      懂球帝
      2026-02-09 18:18:11
      最后關頭,高市政府通告中國,希望送回大熊貓,中方誤判了日本?

      最后關頭,高市政府通告中國,希望送回大熊貓,中方誤判了日本?

      溫讀史
      2025-12-20 10:23:54
      范元甄:曾是紅極一時的“延安四美”,卻因“太聰明”輸掉了一生

      范元甄:曾是紅極一時的“延安四美”,卻因“太聰明”輸掉了一生

      干史人
      2026-02-02 08:33:29
      新疆班事件真相大白,閆學晶的“底褲”被扒光,誰在說謊一目了然

      新疆班事件真相大白,閆學晶的“底褲”被扒光,誰在說謊一目了然

      國際阿嘗
      2026-01-16 10:48:49
      重磅!官方宣布:禁止房子大降價,“限跌令”重出江湖!

      重磅!官方宣布:禁止房子大降價,“限跌令”重出江湖!

      常州壹樓市
      2026-01-17 23:59:54
      有“心機”的小玥兒,在大S去世后的這一年,做了她該做的三件事

      有“心機”的小玥兒,在大S去世后的這一年,做了她該做的三件事

      小娛樂悠悠
      2026-02-07 20:09:45
      拍照后突然想嘗“野味”,2017年7人用石頭砸死一只,藏在木橋下

      拍照后突然想嘗“野味”,2017年7人用石頭砸死一只,藏在木橋下

      青梅侃史啊
      2026-02-07 16:48:42
      米蘭冬奧韓國花滑選手高顏值成熱話,網友:宋江與韓韶禧之子!

      米蘭冬奧韓國花滑選手高顏值成熱話,網友:宋江與韓韶禧之子!

      ChicMyGeek
      2026-02-09 17:06:04
      日本慌了,韓國急了,如今的中國烏魯木齊,先進制造悄然成勢

      日本慌了,韓國急了,如今的中國烏魯木齊,先進制造悄然成勢

      老范談史
      2026-01-31 20:44:15
      中國游客赴俄遭“天價宰殺”落地即“失聯” 免簽紅利下旅行困局

      中國游客赴俄遭“天價宰殺”落地即“失聯” 免簽紅利下旅行困局

      律法刑道
      2025-12-24 13:18:59
      1946年國軍師長戴之奇飲彈自盡后鏡頭,躺在土堆上,軍帽掉落一旁

      1946年國軍師長戴之奇飲彈自盡后鏡頭,躺在土堆上,軍帽掉落一旁

      丫頭說事
      2026-02-08 15:30:08
      皇馬變天!夏窗開啟大清洗!強挖金球級中場,與姆巴佩重聚沖歐冠

      皇馬變天!夏窗開啟大清洗!強挖金球級中場,與姆巴佩重聚沖歐冠

      阿泰希特
      2026-02-09 15:24:09
      2026-02-10 03:24:49
      51Testing軟件測試網 incentive-icons
      51Testing軟件測試網
      中國軟件測試人的精神家園
      1522文章數 13252關注度
      往期回顧 全部

      科技要聞

      實測|字節新模型帶著音效和復雜運鏡殺瘋了

      頭條要聞

      人民日報評"南博事件":無論涉及到什么人 絕不放任

      頭條要聞

      人民日報評"南博事件":無論涉及到什么人 絕不放任

      體育要聞

      不會打籃球,如何入選詹娜前男友第一陣容

      娛樂要聞

      央視電影活動名場面!明星站位太講究

      財經要聞

      滬深北交易所優化再融資 釋放3個信號

      汽車要聞

      長安將搭鈉電池 好比汽車要裝柴油機?

      態度原創

      時尚
      旅游
      教育
      藝術
      軍事航空

      冬季穿衣越簡單越實用!從這些日常穿搭中收獲靈感,大方又自然

      旅游要聞

      新春景觀已上線 流光溢彩迎馬年

      教育要聞

      孩子愛玩手機不愛學習?你沒用對方法!

      藝術要聞

      301.7米!安徽最高、中國最長的樓,外墻寫滿篆書

      軍事要聞

      美伊最敏感時刻 林肯號航母迎來三位“不速之客”

      無障礙瀏覽 進入關懷版