一衷模、下載安裝HTMLTestRunner
對于測試人員來而言,測試工作一般不容易評價(jià)漫拭,也就是說測試人員工作的價(jià)值不好衡量改览,測試需要一個(gè)展示成果的平臺(tái)或者工具下翎,而漂亮的測試報(bào)告就是這樣一個(gè)衡量測試成果的工具。HTMLTestRunner易于生成HTML測試報(bào)告宝当,它是Python標(biāo)準(zhǔn)庫的unittest模塊的擴(kuò)展视事。
下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html
這個(gè)擴(kuò)展非常簡單,只有一個(gè)HTMLTestRunner.py文件庆揩。安裝也非常的簡單俐东,只需要將其復(fù)制到python安裝目錄下即可。若不知道python的安裝目錄订晌,可以通過命令來快速查詢虏辫,方法如下所示:
二、怎么查看python的安裝路徑
1锈拨、在windows系統(tǒng)下砌庄,用cmd命令就可以查看python路勁
where python
2、在linux系統(tǒng)下奕枢,首先打開終端鹤耍,輸入python命令,進(jìn)入python的交互模式验辞,通過sys.path可以查看到python的安裝目錄
sys.path
3稿黄、找到python的安裝路徑后,再把HTMLTestRunner.py文件復(fù)制到指定目錄下即可跌造。
三杆怕、修改HTMLTestRunner.py
為什么要修改HTMLTestRunner.py呢?這是由于HTMLTestRunner.py是基于python2開發(fā)壳贪,為了使其支持python3的環(huán)境陵珍,需要對其內(nèi)容進(jìn)行部分修改。首先通過編輯器打開HTMLTestRunner.py文件违施。
#第94行
import StringIO 修改為:import io
#第539行
self.outputBuffer = StringIO.StringIO() 修改為:self.outputBuffer = io.StringIO()
#第631行
print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改為:print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
#第642行
if not rmap.has_key(cls):修改為:if not cls in rmap:
#第766行
uo = o.decode('latin-1')修改為:uo = o
#第772行
ue = e.decode('latin-1')修改為:ue = e
四互纯、生成HTML測試報(bào)告實(shí)戰(zhàn)
這里以打開百度,并輸入查詢數(shù)據(jù)為例磕蒲,進(jìn)行自動(dòng)化測試留潦,最終生成測試報(bào)告。首先要配置好chromedriver環(huán)境辣往,然后再利用python第三方庫selenium進(jìn)行ui自動(dòng)化測試兔院。
1、配置chromedriver路徑
chromedriver.exe下載地址:http://chromedriver.storage.googleapis.com/index.html
將下載好的chromedriver.exe放在C:\Program Files (x86)\Google\Chrome\Application路徑下站削,并配置好環(huán)境變量:
右鍵點(diǎn)擊我的電腦----->屬性--->高級(jí)系統(tǒng)設(shè)置---->環(huán)境變量------>在path路徑下添加上文中瀏覽器“C:\Program Files (x86)\Google\Chrome\Application”
或者在腳本中注明瀏覽器驅(qū)動(dòng)的位置
driver_path = r'D:\python\chromedriver.exe'
self.driver = webdriver.Chrome(executable_path=driver_path)
2坊萝、自動(dòng)化測試實(shí)例
from selenium import webdriver
import unittest
from HTMLTestRunner import HTMLTestRunner
import time
class Baidu(unittest.TestCase):
def setUp(self):
'''測試準(zhǔn)備工作'''
self.driver = webdriver.Chrome()#初始化瀏覽器,注意要配置Chromedriver路徑,比如:將chrome.exe放在C:\Program Files (x86)\Google\Chrome\Application路徑下
self.driver.maximize_window()
self.driver.implicitly_wait(10)#隱形等待十偶,隱形等待時(shí)我們不會(huì)感覺到真的過了10秒菩鲜,它會(huì)等到當(dāng)前頁面元素加載完畢。
self.base_url = 'https://www.baidu.com/'
def test_baidu_search(self):
'''測試百度搜索'''
self.driver.get(self.base_url)
self.driver.find_element_by_id('kw').clear()
self.driver.find_element_by_id('kw').send_keys('測試工程師')
self.driver.find_element_by_id('su').click()
time.sleep(1)# 顯性等待惦积,會(huì)明顯感覺到程序等待的時(shí)間長度接校,比如:time.sleep(2),會(huì)明顯感覺程序等待了2秒鐘荣刑。
def tearDown(self):
'''資源釋放'''
self.driver.quit()
if __name__ == '__main__':
testunit = unittest.TestSuite()#初始化測試用例集合對象馅笙,構(gòu)建測試套件
testunit.addTest(Baidu("test_baidu_search"))#把測試用例加入到測試用力集合中去,將用例加入到檢測套件中
fp = open('./result.html','wb')#定義測試報(bào)告存放路徑
runner = HTMLTestRunner(stream=fp,title='百度搜索測試報(bào)告',description='用例執(zhí)行情況')#定義測試報(bào)告
runner.run(testunit)#執(zhí)行測試用例
fp.close()
結(jié)果:
注意:
使用pycharm時(shí)無法生成測試報(bào)告的問題在用Ctrl+Shift+F10執(zhí)行腳本后厉亏,發(fā)現(xiàn)沒有在本地生成測試報(bào)告董习,經(jīng)分析,程序執(zhí)行unittest后爱只,沒有再執(zhí)行后面的程序皿淋,也就沒有再生存測試報(bào)告,正確的方法是Alt+Shift+F10恬试,然后在點(diǎn)擊要執(zhí)行的腳本名稱即可窝趣。
- 這是Ctrl+Shift+F10執(zhí)行腳本時(shí),選擇執(zhí)行的方式:
- 這是Alt+Shift+F10執(zhí)行腳本時(shí)训柴,選擇執(zhí)行的方式: