国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

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

0
分享至

前言

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

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

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

UnitTest

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

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

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

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

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

#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))

#執(zhí)行用例

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

description="測試結(jié)果",

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

runner.run(testunit)

代碼編寫完成后,直接進行執(zhí)行程序,執(zhí)行完成后,就會發(fā)現(xiàn)我們測試報告已經(jīng)生成了,直接打開就可以看到自動化測試結(jié)果,失敗的存在截圖信息。

Pytest

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

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

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

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

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

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

#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):

#獲取鉤子方法的調(diào)用結(jié)果

outcome=yield

rep=outcome.get_result()

#僅僅獲取用例call執(zhí)行結(jié)果是失敗的情況

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)

#配置瀏覽器驅(qū)動,不顯示瀏覽器執(zhí)行過程

@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軟件測試網(wǎng)')

t=driver.title

assert t=='51testing軟件測試網(wǎng)'

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報告中,已經(jīng)將對應(yīng)的失敗截圖已經(jīng)添加到其中了。

總結(jié)

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

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

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

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

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

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.

相關(guān)推薦
熱點推薦
遼寧一地要求小學(xué)班主任退出微信群!家長熱議,教育局工作人員回應(yīng)

遼寧一地要求小學(xué)班主任退出微信群!家長熱議,教育局工作人員回應(yīng)

封面新聞
2026-02-28 16:25:03
一種新型的異性關(guān)系,正在中年男女間悄然流行:你知我心我知你意

一種新型的異性關(guān)系,正在中年男女間悄然流行:你知我心我知你意

楓紅染山徑
2026-02-26 00:12:30
一位風(fēng)水大師說:人最好的風(fēng)水就這六點,聽完恍然大悟

一位風(fēng)水大師說:人最好的風(fēng)水就這六點,聽完恍然大悟

一口娛樂
2026-02-28 00:25:03
中國鋼琴圣手,被人把痰盂扣頭上,30歲與母親弟弟吸煤氣而亡

中國鋼琴圣手,被人把痰盂扣頭上,30歲與母親弟弟吸煤氣而亡

卷史
2026-02-28 05:06:44
本科已嚴重飽和的五個專業(yè),1、臨床醫(yī)學(xué),2、法學(xué),3、計算機

本科已嚴重飽和的五個專業(yè),1、臨床醫(yī)學(xué),2、法學(xué),3、計算機

明智家庭教育
2026-01-31 10:29:14
耗資12億建世界最高佛,如今水喝不起拜不起

耗資12億建世界最高佛,如今水喝不起拜不起

時光流轉(zhuǎn)追夢人
2026-02-20 13:09:13
名將慘遭5連鞭零封,世錦賽冠軍2-5爆冷出局,丁俊暉種子資格紅燈

名將慘遭5連鞭零封,世錦賽冠軍2-5爆冷出局,丁俊暉種子資格紅燈

籃球看比賽
2026-02-28 16:59:37
震驚!網(wǎng)傳天津一中學(xué)未返校學(xué)生超100人,三分之二沒寫寒假作業(yè)

震驚!網(wǎng)傳天津一中學(xué)未返校學(xué)生超100人,三分之二沒寫寒假作業(yè)

火山詩話
2026-03-01 07:24:21
女子南下廣東找工作,沒地方住,妹夫:你和我們住一起

女子南下廣東找工作,沒地方住,妹夫:你和我們住一起

心軒專欄
2026-02-26 23:31:38
阿爾茨海默病者逐漸增多,醫(yī)生提醒:55歲后,盡量改掉6個壞習(xí)慣

阿爾茨海默病者逐漸增多,醫(yī)生提醒:55歲后,盡量改掉6個壞習(xí)慣

39健康網(wǎng)
2026-02-17 18:31:37
第25屆冬奧會中國體育代表團總結(jié)大會在京召開

第25屆冬奧會中國體育代表團總結(jié)大會在京召開

北青網(wǎng)-北京青年報
2026-02-28 16:29:03
漲價了!000636,包攬AI算力+CPO+商業(yè)航天+機器人+儲能概念

漲價了!000636,包攬AI算力+CPO+商業(yè)航天+機器人+儲能概念

數(shù)據(jù)寶
2026-03-01 07:57:43
北歐大陸第一美女,五官精致,顏值絕美,確實好看

北歐大陸第一美女,五官精致,顏值絕美,確實好看

小椰的奶奶
2026-02-28 00:02:19
兒子4歲買的分紅險,如今上大學(xué)一查賬戶懵了:存了15年,退保還要虧錢?

兒子4歲買的分紅險,如今上大學(xué)一查賬戶懵了:存了15年,退保還要虧錢?

極目新聞
2026-02-28 10:29:15
山西婚鬧致死案:新郎被4個伴郎暴打致死,婚禮結(jié)束直接辦喪事

山西婚鬧致死案:新郎被4個伴郎暴打致死,婚禮結(jié)束直接辦喪事

明智家庭教育
2025-12-02 11:20:34
至少在已經(jīng)過去的25年里,中國的“財神”不是趙公明,而是WTO!

至少在已經(jīng)過去的25年里,中國的“財神”不是趙公明,而是WTO!

細雨中的呼喊
2026-02-21 06:59:07
烏克蘭王牌:彈射落地后第一時間掏手機自拍,樂觀幽默又盡責(zé)勇敢

烏克蘭王牌:彈射落地后第一時間掏手機自拍,樂觀幽默又盡責(zé)勇敢

鷹眼Defence
2026-02-28 17:07:07
年入23億!靠一片毛肚,這家“火鍋愛馬仕”為何讓黃牛都甘愿排隊

年入23億!靠一片毛肚,這家“火鍋愛馬仕”為何讓黃牛都甘愿排隊

青眼財經(jīng)
2026-02-28 22:44:31
杜聿明晚年談孫立人,直言:賣主求榮的小人,根本不是民族英雄

杜聿明晚年談孫立人,直言:賣主求榮的小人,根本不是民族英雄

阿光的技巧課堂
2026-02-26 18:02:39
默茨訪華大受震撼,離開中國前突然改口,得罪美國也在所不惜

默茨訪華大受震撼,離開中國前突然改口,得罪美國也在所不惜

阿離家居
2026-02-28 15:23:54
2026-03-01 08:43:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

狂攬1100億美元!OpenAI再創(chuàng)融資神話

頭條要聞

特朗普稱哈梅內(nèi)伊身亡 后者去年6月布局完整繼承體系

頭條要聞

特朗普稱哈梅內(nèi)伊身亡 后者去年6月布局完整繼承體系

體育要聞

球隊主力全報銷?頂風(fēng)擺爛演都不演了

娛樂要聞

周杰倫兒子正面照曝光,與父親好像

財經(jīng)要聞

沖突爆發(fā) 市場變天?

汽車要聞

嵐圖泰山黑武士版3月上市 搭載華為四激光智駕方案

態(tài)度原創(chuàng)

游戲
房產(chǎn)
親子
時尚
軍事航空

XBOX商店再現(xiàn)好價折扣!死亡島2終極版僅需7美元

房產(chǎn)要聞

濱江九小也來了!集齊海僑北+哈羅、寰島...江東教育要炸了!

親子要聞

逆天,在醫(yī)院上班懷孕都要提前申請了!

普通人穿衣不需要太復(fù)雜!顏色恰當、搭配和諧,高級又耐看

軍事要聞

美國以色列聯(lián)合襲擊伊朗 實時戰(zhàn)況

無障礙瀏覽 進入關(guān)懷版