利用 HTMLTestRunner生成自動化報告

何為HTMLTestRunner

對于軟件測試來說率碾,一個清晰明了的測試報告叔营,對測試產(chǎn)出的衡量是尤為重要的。當(dāng)然所宰,如果這份報告再漂亮點會更好绒尊。HTMLTesRunner來源于Python標(biāo)準(zhǔn)庫的unittest單元測試框架的一個擴展,下載地址為HTMLTestRunner 仔粥。下載過py文件后婴谱,放入到Python的安裝目錄。比如Windows選擇放到...\Python35\Lib目錄下躯泰。

在Python3環(huán)境下使用HTMLTestRunner

目前HTMLTestRunner仍然是在Python2環(huán)境下開發(fā)的版本谭羔,所以如果想在Python3下使用的話需要做一些修改:

# Line 94
# import StringIO改為
import io
# Line 539
# self.outputBuffer = StringIO.StringIO()改為
self.outputBuffer = io.StringIO()
# Line 631
# print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)改為
print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
# Line 642
# if not rmap.has_key(cls): 改為
if not cls in rmap:
# Line 766
# uo = o.decode('latin-1') 改為
uo = o
# Line 772
# ue = e.decode('latin-1') 改為
ue = e

HTMLTestRunner的用法

我們直接編寫含有最簡單的case的例子,來看下HTMLTestRunner的用法麦向。代碼如下

from selenium import webdriver
import unittest
from HTMLTestRunner import HTMLTestRunner


class Baidu(unittest.TestCase):
    "百度搜索測試"
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.base_url = "https://www.baidu.com"

    def test_baidu_search(self):
        "搜索關(guān)鍵字"
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_id("kw").send_keys("Selenium3")
        driver.find_element_by_id("su").click()

    def tearDown(self):
        self.driver.quit()


testunit = unittest.TestSuite()
testunit.addTest(Baidu("test_baidu_search"))
fp = open('./result.html', 'wb')
runner = HTMLTestRunner(stream=fp, title='測試報告', description='測試執(zhí)行情況')
runner.run(testunit)
fp.close()

這里采用Python的單元測試框架編寫測試用例口糕,setUp和tearDown可以簡單理解為測試的準(zhǔn)備和回收,而test_baidu_search為一個測試用例磕蛇。測試報告通過stream寫入fp,也就是result.html文件中十办。運行程序秀撇,我們可以在當(dāng)前目錄得到一個測試報告。

測試報告截圖

可以清楚的看到測試的執(zhí)行情況向族。如果測試用例測試失敗會是一種什么情況呢呵燕?我們在腳本中插入以下代碼,

js = 'document.getElementById("su").style.visibility = "hidden";'
driver.execute_script(js)

這是用Python調(diào)用Javascript腳本件相,將百度的搜索按鈕隱藏再扭。顯然,測試結(jié)果將為Fail夜矗,我們打開測試報告:

測試報告截圖

可以看到泛范,測試報告清晰的列出失敗的case。
但一個好的測試報告不僅要能體現(xiàn)測試的整體結(jié)果紊撕,更要有強大的可讀性罢荡。我們打開error,只有被標(biāo)記的信息才是我們想要定位error的有效信息:即元素不可見

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

所以对扶,官方的HTMLTestRunner有著極大的局限性区赵。對于一個測試人員來說,自動化腳本本來就是一個用來節(jié)省人力和時間的工具浪南,如果再花大量的時間來troubleshooting笼才,顯示是得不償失的。所以我對我的測試報告的要求是络凿,可以生成測試用例的執(zhí)行結(jié)果骡送,也可以定位問題昂羡。我希望可以在用例執(zhí)行出錯的時候截圖,可以每個關(guān)鍵操作都用log來track各谚。篇幅有限紧憾,決定先挖個坑,下一次講一下我的Github的第一個項目:為HTMLTestRunner增加log和截圖功能昌渤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赴穗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子膀息,更是在濱河造成了極大的恐慌般眉,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潜支,死亡現(xiàn)場離奇詭異甸赃,居然都是意外死亡,警方通過查閱死者的電腦和手機冗酿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門埠对,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人裁替,你說我怎么就攤上這事项玛。” “怎么了弱判?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵襟沮,是天一觀的道長。 經(jīng)常有香客問我昌腰,道長开伏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任遭商,我火速辦了婚禮固灵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劫流。我一直安慰自己怎虫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布困介。 她就那樣靜靜地躺著大审,像睡著了一般。 火紅的嫁衣襯著肌膚如雪座哩。 梳的紋絲不亂的頭發(fā)上徒扶,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音根穷,去河邊找鬼姜骡。 笑死导坟,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的圈澈。 我是一名探鬼主播惫周,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼康栈!你這毒婦竟也來了递递?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤啥么,失蹤者是張志新(化名)和其女友劉穎登舞,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悬荣,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡菠秒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氯迂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片践叠。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嚼蚀,靈堂內(nèi)的尸體忽然破棺而出酵熙,到底是詐尸還是另有隱情,我是刑警寧澤驰坊,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站哮独,受9級特大地震影響拳芙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皮璧,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一舟扎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悴务,春花似錦睹限、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至别洪,卻和暖如春叨恨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挖垛。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工痒钝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秉颗,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓送矩,卻偏偏與公主長得像蚕甥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栋荸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容