python下selenium测试报告整合
使用過(guò)一段時(shí)間的Robot Framework測(cè)試框架,測(cè)試之前需要先搭環(huán)境,需要安裝的東西很多,這一點(diǎn)個(gè)人有些排斥。
每一個(gè)測(cè)試內(nèi)容對(duì)應(yīng)一個(gè)Test_Case,Robot有自己語(yǔ)法格式,如判斷、循環(huán)。實(shí)際使用中發(fā)現(xiàn)導(dǎo)入自定義Lib莫名報(bào)錯(cuò),很是頭疼。
腳本編寫(xiě)完成,可以在UI界面運(yùn)行,也可以使用命令行pybot + Robot項(xiàng)目運(yùn)行。
Robot最大的優(yōu)點(diǎn),自動(dòng)生成html格式的測(cè)試報(bào)告,免去腳本中一大堆測(cè)試結(jié)果處理、保存動(dòng)作。缺點(diǎn)上文已描述,需要搭建環(huán)境,自定義語(yǔ)法個(gè)人很排斥。
于是,這幾天在網(wǎng)上尋找測(cè)試報(bào)告模板,最終覺(jué)得HTMLTestRunner非常不錯(cuò)。
?
一、下載、配置
1.下載HTMLTestRunner.py文件:地址http://tungwaiyip.info/software/HTMLTestRunner.html
2.將該文件保存在python安裝路徑下的lib文件夾中。
?
二、使用
1.基本用法
1.1 import unittest
1.2 定義一個(gè)繼承自u(píng)nittest.TestCase的測(cè)試用例類(lèi)
1.3 定義setUp和tearDown,在每個(gè)測(cè)試用例前后做一些輔助工作。
1.4 定義測(cè)試用例,名字以test開(kāi)頭。
1.5 一個(gè)測(cè)試用例應(yīng)該只測(cè)試一個(gè)方面,測(cè)試目的和測(cè)試內(nèi)容應(yīng)很明確。主要是調(diào)用assertEqual、assertRaises等斷言方法判斷程序執(zhí)行結(jié)果和預(yù)期值是否相符。
1.6 調(diào)用unittest.main()啟動(dòng)測(cè)試
1.7 如果測(cè)試未通過(guò),會(huì)輸出相應(yīng)的錯(cuò)誤提示。如果測(cè)試全部通過(guò)則不顯示任何東西,這時(shí)可以添加-v參數(shù)顯示詳細(xì)信息。
2.unittest模塊的常用方法
assertEqual(a, b) ??? a == b ??? ?
assertNotEqual(a, b) ??? a != b ??? ?
assertTrue(x) ??? bool(x) is True ??? ?
assertFalse(x) ??? bool(x) is False ??? ?
assertIs(a, b) ??? a is b ??? 2.7
assertIsNot(a, b) ??? a is not b ??? 2.7
assertIsNone(x) ??? x is None ??? 2.7
assertIsNotNone(x) ??? x is not None ??? 2.7
assertIn(a, b) ??? a in b ??? 2.7
assertNotIn(a, b) ??? a not in b ??? 2.7
assertIsInstance(a, b) ??? isinstance(a, b) ??? 2.7
assertNotIsInstance(a, b) ??? not isinstance(a, b) ??? 2.7
3.測(cè)試用例
#coding:utf-8 import unittest import time import randomimport HTMLTestRunnerclass Test_Class(unittest.TestCase):def setUp(self):self.seq = range(10)def test_shuffle(self): # make sure the shuffled sequence does not lose any elements random.shuffle(self.seq) self.seq.sort() self.assertEqual(self.seq, range(10)) # should raise an exception for an immutable sequence print("test_shuffle")self.assertRaises(TypeError, random.shuffle, (1,2,3)) def test_choice(self): element = random.choice(self.seq) print("test_choice")self.assertTrue(element in self.seq) def test_sample(self): with self.assertRaises(ValueError): random.sample(self.seq, 20) for element in random.sample(self.seq, 5): self.assertTrue(element in self.seq)def sun(self):self.temp = 5 + 6print("sun test")self.assertEqual(self.temp,11)if __name__ == "__main__":testsuite = unittest.TestSuite() # 添加測(cè)試用例到測(cè)試集中testsuite.addTest(Test_Class("test_shuffle"))testsuite.addTest(Test_Class("test_choice"))testsuite.addTest(Test_Class("test_sample"))testsuite.addTest(Test_Class("sun"))# 生成測(cè)試報(bào)告文件filename = 'D:\\result.html'fp = file(filename, 'wb')runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='測(cè)試結(jié)果',description='測(cè)試報(bào)告.') # runner = unittest.TextTestRunner()runner.run(testsuite)運(yùn)行后測(cè)試結(jié)果會(huì)生成為D:\\result.html 的文件,當(dāng)然測(cè)試結(jié)果的文件名稱(chēng)你可以隨意命名,或者根據(jù)時(shí)間自動(dòng)生成。直接打開(kāi)后就可以看到測(cè)試結(jié)果。
?
三、測(cè)試報(bào)告
四、使用說(shuō)明
1.test_case中print信息出現(xiàn)在report中,運(yùn)行批處理窗口沒(méi)有打印信息。
2.Python shell中運(yùn)行同樣如此
但還有一個(gè)問(wèn)題,Python shell中運(yùn)行時(shí)未產(chǎn)生測(cè)試報(bào)告,測(cè)試報(bào)告文件大小為0
?
轉(zhuǎn)載于:https://www.cnblogs.com/hester/p/4703054.html
總結(jié)
以上是生活随笔為你收集整理的python下selenium测试报告整合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: views display a summ
- 下一篇: Linux下Weblogic 11g R