(四十七)自动化测试高级应用之HTML测试报告-更易读的测试报告
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。
#------------------------------------------------我是可耻的分割线-------------------------------------------
更易读的测试报告
现在生成的测试报告还不易读,因为它只罗列了一堆测试类和测试方法,我们需要用心地为测试类和测试方法命名才能提高测试报告的可读性。如果随意命名为“test_case1”、“test_case2”等,那么这份报告就失去了可读性,也许时间久了连脚本开发者都不清楚“test_case1”是测试什么功能了。
在编写功能测试用例时,每条测试用例都有标题,那么我们能不能也为自动化测试用例加上标题呢?在此之前我们先来学习另一个知识点:python的注释。Python的注释有两种,一种叫conment,另一种叫doc string,前者为普通注释,后者用于函数、类和方法的描述。
在类或方法的下方,通过三引号(‘’’’’’或””””””)来添加doc string类型的注释,这类注释在平时调用时候不显示,可以通过help()方法来查看类或方法的这种注释。
回到问题的远点,HTMLTestRunner可以读取doc string类型的注释。所以,我们只需给测试类或方法添加这种类型的注释即可。
from selenium import webdriver import unittest from HTMLTestRunner import HTMLTestRunner class Baidu(unittest.TestCase): '''百度搜索测试''' def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait(10) self.base_url = 'http://www.baidu.com' def test_baidu_search(self): '''搜索关键字:HTMLTestRunner''' 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() title = driver.title self.assertEqual(title,"百度一下,你就知道") def tearDown(self): self.driver.quit() if __name__ == '__main__': testunit = unittest.TestSuite() testunit.addTest(Baidu('test_baidu_search')) #定义报告的存放路径 fp = open('./result.html','wb') #定义测试报告 runner = HTMLTestRunner(stream=fp, title='百度搜索测试报告', description='用例执行情况:') runner.run(testunit)#运行测试用例 fp.close()#关闭报告文件
再次运行测试用例,查看测试报告: