应用HTMLTestRunner整合测试报告

为了便于测试脚本的维护,以及更多测试用例的管理,于是根据上次学习的HTMLTestRunner生成的测试报告,今天将对其进行整理。我们之前使用 TestSuite 只是在一个.py 文件里添加多个测试用例,那么我们可以法把多个.py 文件中的用例通过测试套件来组织。
测试套件结构如图所示(在此,谢谢虫师博客的分享):
应用HTMLTestRunner整合测试报告_第1张图片

 

测试案例:
1.通过加载baidu模块,sogou模块以及PythonOrg模块
2.生成测试报告
为此,本文的实际用例如下:
应用HTMLTestRunner整合测试报告_第2张图片

3.根据需要,写好测试脚本。待完成后的测试脚本分别另存为文件
(TestBaidu.py,TestSogou.py,PythonOrg.py,All_HTMLTest.py)将其放在同一目录下,然后运行All_HTMLTest.py的脚本。

测试脚本:
TestBaidu.py
测试搜索和链接的控件。

 

测试搜索和链接的控件。

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest import time import re import HTMLTestRunner class TestBaidu(unittest.TestCase): def setUp(self): self.browser=webdriver.Chrome() self.browser.implicitly_wait(30) self.base_url="http://www.baidu.com" self.verficationErrors=[] self.accept_next_alert=True def test_search(self): browser = self.browser browser.get(self.base_url+'/') browser.find_element_by_id("kw").clear() browser.find_element_by_id("kw").send_keys("自动化测试") browser.find_element_by_id("su").click() time.sleep(2) browser.find_element_by_id("su").submit() time.sleep(3) title=browser.title print ("title is %s"%title) time.sleep(5) browser.close() def test_link(self): browser=self.browser browser.get(self.base_url+'/') browser.find_element_by_link_text("贴吧").click() time.sleep(5) browser.close() def tearDown(self): self.browser.quit() self.assertEqual([],self.verficationErrors) if __name__=="__main__": unittest.main() 

TestSogou.py
测试搜索,微信link以及设置链接的控件。

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest import time import re import HTMLTestRunner class TestSogou(unittest.TestCase): def setUp(self): self.browser=webdriver.Chrome() self.browser.implicitly_wait(30) self.base_url="https://www.sogou.com" self.verficationErrors=[] self.accept_next_alert=True def test_search(self): browser=self.browser browser.get(self.base_url+'/') browser.maximize_window() keyworld=browser.find_element_by_name("query") keyworld.send_keys("Selenium Python") browser.find_element_by_id("stb").click() time.sleep(3) browser.close() def test_weixin(self): browser=self.browser browser.get(self.base_url+'/') browser.maximize_window() browser.find_element_by_link_text("微信").click() time.sleep(2) browser.close() def test_config(self): browser=self.browser browser.get(self.base_url+'/') browser.maximize_window() browser.find_element_by_class_name. ("s_usersetting").click() time.sleep(2) browser.close() def tearDown(self): self.browser.quit() self.assertEqual([],self.verficationErrors) if __name__=="__main__": unittest.main() 

 

PythonOrg.py
测试搜索和link控件。

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys import os class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() #这样可以根据需要自动加载时间 self.driver.implicitly_wait(30) self.base_url="http://www.python.org" self.verficationErrors=[] self.accept_next_alert=True def test_search(self): driver = self.driver driver.get(self.base_url+"/") self.assertIn("Python", driver.title) elem = driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN) #判断title中是否有Welcome字段 self.assertIn("Welcome", driver.title) driver.close() def test_download(self): driver = self.driver driver.get(self.base_url+"/") self.assertIn("Python", driver.title link=driver.find_element_by_link_text("Downloads") link.click() time.sleep(3) driver.close() def tearDown(self): self.driver.quit() self.assertEqual([],self.verficationErrors) if __name__ == "__main__": unittest.main() 

 

All_HTMLTest.py
此.py加载了TestBaidu.py,TestSogou.py,PythonOrg.py

#coding=utf-8
import unittest
#加载模块TestBaidu,TestSogou,PythonOrg
import TestSogou
import PythonOrg import TestBaidu import time import HTMLTestRunner testunit=unittest.TestSuite() #将测试用例加入到测试容器中 testunit.addTest(unittest.makeSuite(TestSogou.TestSogou)) testunit.addTest(unittest.makeSuite(PythonOrg.PythonOrgSearch)) testunit.addTest(unittest.makeSuite(TestBaidu.TestBaidu)) #runner=unittest.TextTestRunner() #runner.run(testunit) #导入当前时间,使用time模块的相关函数 now=time.strftime("%Y-%m-%d_%H-%M-%S",time.localtime()) #将测试结果写入到result.html中 fp=open(now+"result.html",'wb') runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='Test Report',description=u'Result:') runner.run(testunit) fp.close() 

 

F5运行,得到:
应用HTMLTestRunner整合测试报告_第3张图片
C:\Python34,得到:
这里写图片描述
打开,此文件得到:
应用HTMLTestRunner整合测试报告_第4张图片

对于错误的case,可以根据实际情况再做讨论。
这样一来,对于脚本的维护便利了很多。只需要根据需要,改动相关模块的脚本即可,或者根据需要添加需要的模块的脚本,然后加载到All_HTMLTest.py中去。

转载于:https://www.cnblogs.com/hanzhao1987/p/5993068.html

你可能感兴趣的:(测试,python,ui)