web测试应用实战
案例:使用百度搜索关键词“selenium 自学网” 并打开课程页面
from selenium import webdriver from time import sleep import unittest class Test_baidu(unittest.TestCase): def setUp(self): self.driver=webdriver.Firefox() self.driver.implicitly_wait(10) self.driver.get("https://www.baidu.com") def test_baidu(self): driver=self.driver driver.find_element_by_id("kw").clear() driver.find_element_by_id("kw").send_keys("selenium 自学网") driver.find_element_by_id("su").click() driver.implicitly_wait(5) title=driver.title self.assertEqual(title,"selenium 自学网_百度搜索") driver.find_element_by_partial_link_text("Selenium自动化").click() sleep(5) def tearDown(self): self.driver.quit() if __name__=='__main__': unittest.main()
测试报告生成
自动化测试执行完成之后,我们需要生成测试报告来查看测试结果,使用HTMLTestRunner模块可直接生成html格式的测试报告
下载地址:
http://tungwaiyip.info/software/HTMLTestRunner.html
下载后的修改:
94行引入名称要改,从import StringIO 改成 import io。
539行self.outputBuffer = StringIO.String()要改成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
存放路径:
将修改完成的模块存放在Python路径下lib目录里面即可
import unittest from HTMLTestRunner import HTMLTestRunner import time #定义测试用例路径 test_dir='./' discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py') if __name__=='__main__': # 存放报告的文件夹 report_dir='./test_report' # 报告命名时间格式化 now=time.strftime("%Y-%m-%d %H_%M_%S ") #报告文件完整路径 report_name=report_dir+'/'+now+'result.html' #打开文件在报告中写入测试结果 with open(report_name,'wb') as f: runner=HTMLTestRunner(stream=f,title="Test Report",description='Test case result') # runner=unittest.TextTestRunner() runner.run(discover) f.close()
测试报告美化
下载地址:https://github.com/easonhan007/HTMLTestRunner
下载后也需要和前面的内容一样修改,然后放置到python安装路径的Lib的文件夹里
import unittest from BSTestRunner import BSTestRunner import time #定义测试用例路径 test_dir='./' discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py') if __name__=='__main__': # 存放报告的文件夹 report_dir='./test_report' # 报告命名时间格式化 now=time.strftime("%Y-%m-%d %H_%M_%S ") #报告文件完整路径 report_name=report_dir+'/'+now+'result.html' #打开文件在报告中写入测试结果 with open(report_name,'wb') as f: runner=BSTestRunner(stream=f,title="Test Report",description='Test case result') runner.run(discover) f.close()