selenium学习笔记(HTMLTestRunner测试报告)
之前提到selenium加入unittest框架、可以引入HTMLTestRunner扩展、以此来生成测试报告
首先是分享下载的百度云地址
http://pan.baidu.com/s/1pKUItWR
文件名:HTMLTestRunner.py
下载成功后放入相应的python目录下如: “C:\Python27\Lib”
通过python自带的IDLE
如果没有报错、则说明添加成功
之后是利用之前写好的博客园登录脚本
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import time 5 import unittest 6 7 from selenium import webdriver 8 9 10 class TestCnblogs(unittest.TestCase): 11 def setUp(self): 12 print "自动化测试用例执行开始" 13 self.driver = webdriver.Firefox() 14 self.driver.implicitly_wait(30) 15 # 智能等待30S 16 self.Errors = [] 17 # 错误信息列表 18 19 def tearDown(self): 20 self.driver.quit() 21 self.assertEqual([], self.Errors) 22 # 检查错误信息列表 若不为空则返回显示 23 print "自动化测试用例执行结束" 24 25 def test_cnblogs_login(self): 26 u"""博客园登录""" 27 driver = self.driver 28 driver.get("http://www.cnblogs.com/") 29 # 测试地址 后面可以添加响应地址 30 driver.find_element_by_css_selector("a[onclick = 'login();return false']").click() 31 driver.find_element_by_css_selector("input[type = 'text']").click() 32 driver.find_element_by_css_selector("input[type = 'text']").send_keys(u"堕落的伊丝莉") 33 # 这里用户名由于是中文前面要加 u 34 driver.find_element_by_css_selector("input[type = 'password']").click() 35 driver.find_element_by_css_selector("input[type = 'password']").send_keys("xxxxxx") 36 # 输入密码、密码当然按照实际内容添加 37 driver.find_element_by_css_selector("input[type = 'submit']").click() 38 time.sleep(2) 39 driver.close() 40 41 42 if __name__ == "__main__": 43 unittest.main()
这里存在一个问题、如果把生成测试报告的代码内容写在 if __name__ == "__main__":
之下运行成功且不报错、但是生成的html文件内容为空
两种解决方式 一种是在cmd里执行脚本
另一种是写在另一文件加载上面的测试脚本代码
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from test_case.cnblogs import TestCnblogs 5 import HTMLTestRunner 6 import unittest 7 8 testreport = unittest.TestSuite() 9 10 testreport.addTest(TestCnblogs("test_cnblogs_login")) 11 filename = "E:\\work\\python project\\selenium_python\\report.html" 12 fp = file(filename, "wb") 13 runner = HTMLTestRunner.HTMLTestRunner( 14 stream=fp, 15 title=u"博客园测试报告", 16 description=u"用例执行情况:" 17 ) 18 runner.run(testreport)
这样直接在相应的python开发环境下运行即可成功生成测试报告