当测试用例量多起来后,随后我们根据每天的测试结果,可能会有很多的测试报告。找到一个办法来合理管理case和测试报告就显得很重要,能提工作试效率。根据我的经验,我们可以把用例用一个文件夹装起来,测试报告也单独放在一个文件夹里。外层用一个run程序来运行和测试和发送测试报告。
下面的例子里用到Python3版本的Html Test report. git 链接Here.
文件结构如下:
project folder:
-----|run.py
-----|Test_case
----------|test_case_1
----------|test_case_2
.
-----|Test_report
----------|test_report_1
----------|test_report_1
.
举例如下:
run.py
import time,unittest from HTMLTestRunner_PY3 import HTMLTestRunner test_dir='./Test_case' 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 baidu") runner.run(discover) f.close()
test_baidu.py
import unittest from selenium import webdriver from time import sleep class TestBaidu(unittest.TestCase): def setUp(self): self.driver=webdriver.Firefox() self.driver.implicitly_wait(10) self.driver.get("http://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() sleep(3) title=driver.title self.assertEqual(title,"Selenium 自学网_百度搜索") def tearDown(self): self.driver.quit() if __name__=="__main__": unittest.main()
#coding=utf-8 from selenium import webdriver #加载unittest模块 import unittest import time class BaiduYun(unittest.TestCase): def setUp(self): self.browser=webdriver.Firefox() self.browser.implicitly_wait(30) self.base_url="http://yun.baidu.com" self.verficationErrors=[] self.accept_next_alert=True def test_Register(self): browser=self.browser browser.get(self.base_url+'/') u"""立即注册百度账号""" browser.find_element_by_class_name("link-create").click() time.sleep(2) browser.close() def tearDown(self): self.browser.quit() self.assertEqual([],self.verficationErrors) if __name__=="__main__": unittest.main()