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

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

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

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

测试搜索和链接的控件。

  1. #coding=utf-8
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.support.ui import Select
  6. from selenium.common.exceptions import NoSuchElementException
  7. import unittest
  8. import time
  9. import re
  10. import HTMLTestRunner
  11. class TestBaidu(unittest.TestCase):
  12. def setUp(self):
  13. self.browser=webdriver.Chrome()
  14. self.browser.implicitly_wait(30)
  15. self.base_url="http://www.baidu.com"
  16. self.verficationErrors=[]
  17. self.accept_next_alert=True
  18. def test_search(self):
  19. browser = self.browser
  20. browser.get(self.base_url+'/')
  21. browser.find_element_by_id("kw").clear()
  22. browser.find_element_by_id("kw").send_keys("自动化测试")
  23. browser.find_element_by_id("su").click()
  24. time.sleep(2)
  25. browser.find_element_by_id("su").submit()
  26. time.sleep(3)
  27. title=browser.title
  28. print ("title is %s"%title)
  29. time.sleep(5)
  30. browser.close()
  31. def test_link(self):
  32. browser=self.browser
  33. browser.get(self.base_url+'/')
  34. browser.find_element_by_link_text("贴吧").click()
  35. time.sleep(5)
  36. browser.close()
  37. def tearDown(self):
  38. self.browser.quit()
  39. self.assertEqual([],self.verficationErrors)
  40. if __name__=="__main__":
  41. unittest.main()

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

  1. #coding=utf-8
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.support.ui import Select
  6. from selenium.common.exceptions import NoSuchElementException
  7. import unittest
  8. import time
  9. import re
  10. import HTMLTestRunner
  11. class TestSogou(unittest.TestCase):
  12. def setUp(self):
  13. self.browser=webdriver.Chrome()
  14. self.browser.implicitly_wait(30)
  15. self.base_url="https://www.sogou.com"
  16. self.verficationErrors=[]
  17. self.accept_next_alert=True
  18. def test_search(self):
  19. browser=self.browser
  20. browser.get(self.base_url+'/')
  21. browser.maximize_window()
  22. keyworld=browser.find_element_by_name("query")
  23. keyworld.send_keys("Selenium Python")
  24. browser.find_element_by_id("stb").click()
  25. time.sleep(3)
  26. browser.close()
  27. def test_weixin(self):
  28. browser=self.browser
  29. browser.get(self.base_url+'/')
  30. browser.maximize_window()
  31. browser.find_element_by_link_text("微信").click()
  32. time.sleep(2)
  33. browser.close()
  34. def test_config(self):
  35. browser=self.browser
  36. browser.get(self.base_url+'/')
  37. browser.maximize_window()
  38. browser.find_element_by_class_name.
  39. ("s_usersetting").click()
  40. time.sleep(2)
  41. browser.close()
  42. def tearDown(self):
  43. self.browser.quit()
  44. self.assertEqual([],self.verficationErrors)
  45. if __name__=="__main__":
  46. unittest.main()

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

  1. import unittest
  2. from selenium import webdriver
  3. from selenium.webdriver.common.keys import Keys
  4. import os
  5. class PythonOrgSearch(unittest.TestCase):
  6. def setUp(self):
  7. self.driver = webdriver.Chrome()
  8. #这样可以根据需要自动加载时间
  9. self.driver.implicitly_wait(30)
  10. self.base_url="http://www.python.org"
  11. self.verficationErrors=[]
  12. self.accept_next_alert=True
  13. def test_search(self):
  14. driver = self.driver
  15. driver.get(self.base_url+"/")
  16. self.assertIn("Python", driver.title)
  17. elem = driver.find_element_by_name("q")
  18. elem.send_keys("selenium")
  19. elem.send_keys(Keys.RETURN)
  20. #判断title中是否有Welcome字段
  21. self.assertIn("Welcome", driver.title)
  22. driver.close()
  23. def test_download(self):
  24. driver = self.driver
  25. driver.get(self.base_url+"/")
  26. self.assertIn("Python", driver.title
  27. link=driver.find_element_by_link_text("Downloads")
  28. link.click()
  29. time.sleep(3)
  30. driver.close()
  31. def tearDown(self):
  32. self.driver.quit()
  33. self.assertEqual([],self.verficationErrors)
  34. if __name__ == "__main__":
  35. unittest.main()

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

  1. #coding=utf-8
  2. import unittest
  3. #加载模块TestBaidu,TestSogou,PythonOrg
  4. import TestSogou
  5. import PythonOrg
  6. import TestBaidu
  7. import time
  8. import HTMLTestRunner
  9. testunit=unittest.TestSuite()
  10. #将测试用例加入到测试容器中
  11. testunit.addTest(unittest.makeSuite(TestSogou.TestSogou))
  12. testunit.addTest(unittest.makeSuite(PythonOrg.PythonOrgSearch))
  13. testunit.addTest(unittest.makeSuite(TestBaidu.TestBaidu))
  14. #runner=unittest.TextTestRunner()
  15. #runner.run(testunit)
  16. #导入当前时间,使用time模块的相关函数
  17. now=time.strftime("%Y-%m-%d_%H-%M-%S",time.localtime())
  18. #将测试结果写入到result.html中
  19. fp=open(now+"result.html",'wb')
  20. runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='Test Report',description=u'Result:')
  21. runner.run(testunit)
  22. fp.close()

F5运行,得到:

C:\Python34,得到:

打开,此文件得到:

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

应用HTMLTestRunner整合测试报告的更多相关文章

  1. HTMLTESTRunner自动化测试报告增加截图功能

    我们都知道HTMLTESTRunner自动化测试报告,是Unittest单元测试框架报告,那么在做ui测试的时候就有点不适用了. 我们需要出错截图功能. 以下是我改的,增加了截图功能,先展示界面,再展 ...

  2. selenium自动化测试之整合测试报告

    selenium自动化测试之整合测试报告 标签(空格分隔): 整合报告 如下截图我们添加一个文件叫做:latest_report.py文件, import time import os import ...

  3. Pycharm使用python3无法通过HTMLTestRunner生成测试报告《转载》

    Pycharm使用python3无法通过HTMLTestRunner生成测试报告: https://blog.csdn.net/weixin_38981172/article/details/8238 ...

  4. 转HTMLTestRunner 生成测试报告

    1.HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展.它生成易于使用的 HTML 测试报告 1>下载HTMLTestRunner.py文件,地址为: h ...

  5. HTMLTestRunner 自动化测试报告

    http://tungwaiyip.info/software/HTMLTestRunner.html下载,将下载后的文件放在python的Lib目录下 # -*- coding:utf-8 -*- ...

  6. Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,

    测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...

  7. Python htmlTestRunner生成测试报告Demo

    #该代码段是ReadTxt_demo.py 的代码,用户读取txt 文件中的用户信息. #ReadTxt_demo.py def readTxt(filePath): fo = open(filePa ...

  8. Python2 HTMLTestRunner自动化测试报告美化

    python2 的测试报告美化,需要的同学直接用 #coding=utf-8 """ A TestRunner for use with the Python unit ...

  9. Python3 HTMLTestRunner自动化测试报告美化

    # FileName : MyHTMLTestRunner.py # Author : wangyinghao # DateTime : 2019/1/9 21:04 # SoftWare : PyC ...

随机推荐

  1. linux下bwa和samtools的安装与使用

    bwa的安装流程安装本软体总共需要完成以下两个软体的安装工作:1) BWA2) Samtools 1.BWA的安装a.下载BWA (download from BWA Source Forge ) h ...

  2. 【P2774】方格取数问题(贪心+最大流,洛谷)

    首先,我们要读懂这道题,否则你会和我一开始产生一样的疑问,把所有的数都取走剩下一个最小的不就可以了么???然后我们发现样例完全不是这么回事.题目中所说的使相邻的两个数没有公共边,是指你去走的数,也就是 ...

  3. 【BZOJ1854】游戏[SCOI2009](神奇贪心+并查集)

    这道题和今年GDKOI的Day2T2很像(然而gdkoi的题用网络流可以A,这道题只能拿30). 网址:http://www.lydsy.com/JudgeOnline/problem.php?id= ...

  4. 基于“基于dockerhub的jetty镜像的ossfs镜像”部署war包,遇到的文件夹读写权限被限制的问题解决方案

    前提: “基于dockerhub的jetty镜像的ossfs镜像” 已经搭建好了. 部署准备: 1.本地打包:war包-->idea工具 mvn 打包. 2.本地sh脚本:compile_vps ...

  5. json数据的拼接与解析

    json数据格式 [{ "firstName": "Brett", "lastName":"McLaughlin", & ...

  6. 偶尔出现button不能点击的情况

    原因: 1.没有加点击事件 2.从别的项目或者别的场景导入的预制体,要更换canvas才能点击,不然没反应

  7. python--关于if __name__==__main__的解释

    在解释之前首先我们看下__name__这个变量存的是什么: #!/usr/bin/env python # -*- coding:utf-8 -*- print(__name__) 结果: __mai ...

  8. 面试题46:求1+2+...+n

    题目:求1+2+...+n,要求不能使用乘除法.for.while.if.else.swithc.case等关键字及条件判断语句(A?B:C). 解法一:利用构造函数求解 class Temp { p ...

  9. cmd命令之查看进程到杀掉进程

    1. cmd命令查看当前进程 netstat -ano | findstr “port”

  10. const指针和指向const的指针

    int *const p=&a; 这是const指针,这种指针必须在定义时就给出它所指向的地址,否则会error:uninitialized const 'p'.const指针的指针本身是co ...