最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Selenium+python之HTML測試報告

2023-10-15 09:54 作者:塵緣如夢_  | 我要投稿

一、準備

1、本節(jié)用到的模塊——HTMLTestRunner

1)下載:下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html

鼠標右鍵→目標另存為,保存到本地。

2)安裝:將下載的HTMLTestRunner.py文件復(fù)制到Python安裝目錄下即可

...\Python36\Lib

3)驗證:在Python交互模式下引入HTMLTestRunner模塊,如系統(tǒng)沒有報錯,則說明添加成功

image.png

2、修改HTMLTestRunner

因為HTMLTestRunner是基于Python2開發(fā)的,如果在Python3環(huán)境下使用,需要對其部分內(nèi)容進行修改。使用notepad++打開HTMLTestRunner.py文件,修改如下內(nèi)容:

第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, '\nTimeElapsed:%s' % (self.stopTime - self.startTime))

第642行,將if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,將uo = o.decode(‘latin-1‘)修改成uo = e

第772行,將ue = e.decode(‘latin-1‘)修改成ue = e

二、生成HTML測試報告

以百度搜索為例生成HTML測試報告

1、代碼實現(xiàn)

?# -*- coding: utf-8 -*-
?from selenium import webdriver
?from HTMLTestRunner import HTMLTestRunner
?import unittest,time
?
?class BaiduIdeTest(unittest.TestCase):
? ? ?def setUp(self):
? ? ? ? ?self.driver = webdriver.Firefox()
? ? ? ? ?self.driver.implicitly_wait(30)
? ? ? ? ?self.base_url = "https://www.baidu.com/"
?
? ? ?
? ? ?def test_baidu_ide(self):
? ? ? ? ?driver = self.driver
? ? ? ? ?driver.get(self.base_url)
? ? ? ? ?driver.find_element_by_id("kw").clear()
? ? ? ? ?driver.find_element_by_id("kw").send_keys("HTMLTestRunner")
? ? ? ? ?driver.find_element_by_id("su").click()
? ? ? ? ?time.sleep(5)
? ? ? ? ?self.assertEqual(u"HTMLTestRunner_百度搜索", driver.title)
? ? ?
?
?
? ? ?def tearDown(self):
? ? ? ? ?self.driver.quit()
?
?
?if __name__ == "__main__":
? ? ?#構(gòu)造測試套件
? ? ?testsuit = unittest.TestSuite()
? ? ?testsuit.addTest(BaiduIdeTest("test_baidu_ide"))
? ? ?#定義測試報告存放路徑
? ? ?fp = open('./result.html','wb')
? ? ?#定義測試報告
? ? ?runner = HTMLTestRunner(stream=fp,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?title='自動化測試報告',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?description='用例執(zhí)行情況:')
? ? ?runner.run(testsuit)
? ? ?#關(guān)閉測試報告
? ? ?fp.close()

2、代碼分析

1)將HTMLTestRunner模塊用import導(dǎo)入進來。

2)通過open()方法以二進制寫模式('wb')打開當前目錄下的result.heml,如果沒有,則自動創(chuàng)建。

3)調(diào)用HTMLTestRunner模塊下的HTMLTestRunner類。

  stream 指定測試報告文件

  title 定義測試報告的標題

  description 定義測試報告的副標題

4)通過HTMLTestRunner的run()方法來運行測試套件中的測試用例

5)關(guān)閉測試報告文件close()

3、代碼效果

image.png

4、tips

代碼執(zhí)行的時候?qū)⑹髽朔诺?code>“if __name__ == "__main__":”右鍵選擇“Run'baidu_ide_text'” 而不要使用“Run untitest in baidu_ide_text'”,否則無法生成測試報告

三、更易讀的測試報告

通過Python的doc string類型的注釋增強測試報告的可度性。

python代碼注釋分為兩種:commen(普通注釋#開頭)和doc string(描述函數(shù)、類和方法三引號表示)

1、代碼實現(xiàn)

?......
?class BaiduIdeTest(unittest.TestCase):
? ? ?'''百度搜索測試'''
? ? ?def setUp(self):
? ? ? ? ?self.driver = webdriver.Firefox()
? ? ? ? ?self.driver.implicitly_wait(30)
? ? ? ? ?self.base_url = "https://www.baidu.com/"
?
? ? ?
? ? ?def test_baidu_ide(self):
? ? ? ? ?'''搜索關(guān)鍵字'''
? ? ? ? ?driver = self.driver
? ? ? ? ?driver.get(self.base_url)
? ? ? ? ?driver.find_element_by_id("kw").clear()
? ? ? ? ?driver.find_element_by_id("kw").send_keys("HTMLTestRunner")
? ? ? ? ?driver.find_element_by_id("su").click()
? ? ? ? ?time.sleep(5)
? ? ? ? ?self.assertEqual(u"HTMLTestRunner_百度搜索", driver.title)
?........

2、代碼效果

image.png

四、測試報告名稱

使用python的time模塊,在報告名稱中加入當前時間增強測試報告文件的識別性。

1、知識準備

time.time():獲取當前時間戳

time.ctime():當前時間的字符串形式

time.location():當前時間的struct_time形式

time.strftime():獲得當前時間,可以將時間格式化字符串

常用格式化符號:

%Y:帶世紀的年,2017

%y:不帶世紀的年,17

%m:月份

%d:天

%H:24小時制的小時

%M:分

%S:秒

2、代碼實現(xiàn)

?......
?if __name__ == "__main__":
? ? ?#構(gòu)造測試套件
? ? ?testsuit = unittest.TestSuite()
? ? ?testsuit.addTest(BaiduIdeTest("test_baidu_ide"))
? ? ?
? ? ?#按照一定格式獲取當前時間
? ? ?now = time.strftime("%Y%m%d_%H%M%S")
? ? ?#將當前時間加入到報告文件名稱中
? ? ?filename = './'+now+'result.html'
? ? ?#定義測試報告存放路徑
? ? ?fp = open(filename,'wb')
? ? ?#定義測試報告
? ? ?runner = HTMLTestRunner(stream=fp,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?title='自動化測試報告',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?description='用例執(zhí)行情況:')
? ? ?runner.run(testsuit)
? ? ?#關(guān)閉測試報告
? ? ?fp.close()

3、代碼效果

image.png

五、項目集成測試報告

將以上內(nèi)容集成到項目的runtest.py文件中,使其作用于整個測試項目

1、代碼實現(xiàn)

?# -*- coding: utf-8 -*-
?from selenium import webdriver
?import unittest, time
?
?class YoudaoIdeTest(unittest.TestCase):
? ? ?'''有道翻譯測試'''
? ? ?def setUp(self):
? ? ? ? ?self.driver = webdriver.Firefox()
? ? ? ? ?self.driver.implicitly_wait(30)
? ? ? ? ?self.base_url = "http://www.youdao.com/"
?
? ? ?
? ? ?def test_youdao_ide(self):
? ? ? ? ?'''中英翻譯測試'''
? ? ? ? ?driver = self.driver
? ? ? ? ?driver.get(self.base_url)
? ? ? ? ?driver.find_element_by_id("translateContent").clear()
? ? ? ? ?driver.find_element_by_id("translateContent").send_keys(u"自動化測試報告")
? ? ? ? ?driver.find_element_by_css_selector("button").click()
? ? ? ? ?time.sleep(5)
? ? ? ? ?self.assertEqual(u"【自動化測試報告】", driver.title)
?
? ? ?
? ? ?def tearDown(self):
? ? ? ? ?self.driver.quit()
?
?
?if __name__ == "__main__":
? ? ?unittest.main()

2、代碼效果


Selenium+python之HTML測試報告的評論 (共 條)

分享到微博請遵守國家法律
清涧县| 乌什县| 巫山县| 大姚县| 霞浦县| 砀山县| 喜德县| 建阳市| 朔州市| 襄城县| 鄢陵县| 克东县| 连平县| 招远市| 广灵县| 绩溪县| 屏边| 海安县| 房产| 当阳市| 崇仁县| 邵武市| 绥滨县| 隆尧县| 淮阳县| 额敏县| 保康县| 龙江县| 平邑县| 巴林右旗| 灵川县| 虎林市| 拉萨市| 兖州市| 新竹县| 阳泉市| 驻马店市| 英吉沙县| 商城县| 贞丰县| 铜陵市|