python-生成HTMLTestRunner測(cè)試報(bào)告

在CSDN上面看到一篇文章,是web自動(dòng)化測(cè)試?yán)樱玫氖莝elenium python,這個(gè)里面元素的定位我還不太了解,但是自動(dòng)化思維是一致的,謄抄下來,留著以后用。

一、安裝HTMLTestRunner

HTMLTestRunner 是 Python 標(biāo)準(zhǔn)庫的 unittest 模塊的一個(gè)擴(kuò)展,它可以生成 HTML的 測(cè)試報(bào)告。?

首先要下 HTMLTestRunner.py 文件,將下載的文件放入…\python\Lib目錄下?

python2版下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html?

python3版下載地址:http://pan.baidu.com/s/1dEZQ0pz

在IDLE里引入 HTMLTestRunner 包,如果沒有報(bào)錯(cuò),則說明添加成功,如下圖:?

HTMLtestrunner安裝

之后是給出了alltest.py執(zhí)行測(cè)試套件,并且生成測(cè)試報(bào)告,然后給出了百度搜索和搜狗搜索的testcase,如下:

二、代碼

all_tests.py

#coding=utf-8'''

Created on 2017-6-14

@author: 靈樞

Project:通過測(cè)試套件執(zhí)行多個(gè)測(cè)試用例,并生成報(bào)告

'''import HTMLTestRunnerimport unittestimport os,time

listaa = "E:\\selenium_python2\\test_case"defcreatesuite1():? ? testunit=unittest.TestSuite()

? ? discover=unittest.defaultTestLoader.discover(listaa,pattern='start_*.py',top_level_dir=None)

? ? for test_suite in discover:

? ? ? ? for test_case in test_suite:

? ? ? ? ? ? testunit.addTests(test_case)

? ? ? ? ? ? print(testunit)

? ? return testunit

now = time.strftime("%Y-%m-%d %H_%M_%S",time.localtime())

filename="E:\\selenium_python2\\report\\"+now+"_result.html"fp=open(filename,'wb')

runner=HTMLTestRunner.HTMLTestRunner(

? ? stream=fp,

? ? title=u'搜索功能測(cè)試報(bào)告',

? ? description=u'用例執(zhí)行情況:')

runner.run(createsuite1())#關(guān)閉文件流,不關(guān)的話生成的報(bào)告是空的

fp.close()



代碼分析

import HTMLTestRunner:要使用 HTMLTestRunner 首先要導(dǎo)入模塊

unittest.TestSuite():TestSuite()可以看作成一個(gè)容器 ,可通過 addTests 方法把要執(zhí)行的用例添加到該容器里

defaultTestLoader:測(cè)試用例加載器,其包括多個(gè)加載測(cè)試用例的方法。返回一個(gè)測(cè)試套件

discover(listaa,pattern=’start*.py’,top_level_dir=None):找到指定目錄listaa下所有測(cè)試模塊;遞歸查到子目錄下名稱以start開頭的測(cè)試用例,只有匹配到文件名才能被加載;如果啟動(dòng)的不是頂層目錄,那么頂層目錄必須要單獨(dú)指定,如果沒有頂層目錄,默認(rèn)為None

time.strftime(“%Y-%m-%d %H_%M_%S”,time.localtime()):獲取當(dāng)前時(shí)間,第一個(gè)參數(shù)設(shè)置時(shí)間格式,第二個(gè)參數(shù)是得到struct_time 形式的當(dāng)前時(shí)間

filename=”E:\selenium_python2\report\”+now+”_result.html”:測(cè)試報(bào)告的存放路徑及文件名,文件名中加了當(dāng)前時(shí)間以便每次生成不同的測(cè)試報(bào)告

fp=open(filename,’wb’):創(chuàng)測(cè)試報(bào)告的html文件,此時(shí)還是個(gè)空文件

runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u’搜索功能測(cè)試報(bào)告’,description=u’用例執(zhí)行情況:’) :定義 HTMLTestRunner 測(cè)試報(bào)告,stream 定義報(bào)告所寫入的文件;title 為報(bào)告的標(biāo)題;description 為報(bào)告的說明與描述

runner.run(createsuite1()):運(yùn)行測(cè)試容器中的用例,并將結(jié)果寫入的報(bào)告中

fp.close():關(guān)閉文件流,將HTML內(nèi)容寫進(jìn)測(cè)試報(bào)告文件



listaa目錄下的測(cè)試用例:

start_baidu.py

# coding=utf-8

'''

Created on 2017-6-14

@author: 靈樞

Project:登錄百度測(cè)試用例

'''

from selenium import webdriver

import unittest, time

classBaiduTest(unittest.TestCase):? ??

? ? def setUp(self): ? ? ??

? ? ? ? self.driver = webdriver.Chrome()

? ? ? ? self.driver.implicitly_wait(30) #隱性等待時(shí)間為30秒? ? ? ??

? ? ? ? self.base_url = "https://www.baidu.com"? ??

def ?test_baidu_search(self):? ? ? ??

? ? ? ?u"""百度搜索"""? ? ? ??

? ? ? ? driver = self.driver

? ? ? ? driver.get(self.base_url + "/")

? ? ? ? driver.find_element_by_id("kw").clear()

? ? ? ? driver.find_element_by_id("kw").send_keys("unittest")

? ? ? ? driver.find_element_by_id("su").click()

? ? ? ? time.sleep(3)

? ? ? ? title=driver.title

? ? ? ? self.assertEqual(title, u"unittest_百度搜索")

? ? def ?test_baidu_set(self):? ? ? ??

? ? ? ? ?u"""百度設(shè)置"""? ? ? ??

? ? ? ? driver=self.driver

? ? ? ? driver.get(self.base_url+"/gaoji/preferences.html")

? ? ? ? m=driver.find_element_by_name("NR")

? ? ? ? time.sleep(1)

? ? ? ? m.find_element_by_xpath("http://option[@value='50']").click()

? ? ? ? time.sleep(1)

? ? def ?tearDown(self):? ? ? ??

? ? ? ? self.driver.quit()

if __name__ == "__main__":

? ? ? ? unittest.main()

start_sogou.py

搜狗搜索類似百度搜索的操作,不再重復(fù)復(fù)制。

三、運(yùn)行

運(yùn)行all_tests.py,生成的報(bào)告如下:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容