博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
应用HTMLTestRunner整合测试报告
阅读量:6672 次
发布时间:2019-06-25

本文共 4754 字,大约阅读时间需要 15 分钟。

为了便于测试脚本的维护,以及更多测试用例的管理,于是根据上次学习的HTMLTestRunner生成的测试报告,今天将对其进行整理。我们之前使用 TestSuite 只是在一个.py 文件里添加多个测试用例,那么我们可以法把多个.py 文件中的用例通过测试套件来组织。

测试套件结构如图所示(在此,谢谢虫师博客的分享):
这里写图片描述

 

测试案例:

1.通过加载baidu模块,sogou模块以及PythonOrg模块
2.生成测试报告
为此,本文的实际用例如下:
这里写图片描述

3.根据需要,写好测试脚本。待完成后的测试脚本分别另存为文件

(TestBaidu.py,TestSogou.py,PythonOrg.py,All_HTMLTest.py)将其放在同一目录下,然后运行All_HTMLTest.py的脚本。

测试脚本:

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

 

测试搜索和链接的控件。

#coding=utf-8from selenium import webdriverfrom 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-8from selenium import webdriverfrom 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 unittestfrom selenium import webdriverfrom 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-8import unittest#加载模块TestBaidu,TestSogou,PythonOrgimport TestSogouimport 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运行,得到:

这里写图片描述
C:\Python34,得到:
这里写图片描述
打开,此文件得到:
这里写图片描述

对于错误的case,可以根据实际情况再做讨论。

这样一来,对于脚本的维护便利了很多。只需要根据需要,改动相关模块的脚本即可,或者根据需要添加需要的模块的脚本,然后加载到All_HTMLTest.py中去。

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

你可能感兴趣的文章
战略合作背后的秘密:VMware沦为AWS的渠道商?
查看>>
day1-接口测试_jmeter_postman
查看>>
Python 文件操作
查看>>
java 中的流程控制
查看>>
Ubuntu 安装 Docker
查看>>
Vue.js 插件开发详解
查看>>
python练习2
查看>>
nodejs中的 Cannot read property'text' of undefined 问题
查看>>
python 函数的定义
查看>>
袁帅:用科技技术助力效益转化 剖析当前会议互动中的移动互联网科技
查看>>
关于机器级二进制位移
查看>>
windows7 10 windows2008 windws2012 nfs客户端的安装
查看>>
Spring Cloud--Honghu Cloud分布式微服务云系统—System系统管理
查看>>
MySQL数据库源码包安装(5.7最新版本)
查看>>
CentOS 7 yum安装zabbix 设置中文界面
查看>>
Django1.11启动错误:Generator expression must be parent
查看>>
SSH协议服务器、SUDO用法以及PAM机制
查看>>
CSS如何让li 4个一行显示
查看>>
杭州雄迈信息技术有限公司被评为“杭州市专利试点企业”
查看>>
ManageEngine网络管理软件新特点
查看>>