结构是

  1. test_all.py 进行配置,执行所有测试用例集,并合并测试报告到同一个文件
  1. #test_all.py 进行配置,执行所有测试用例集
  2. # coding = utf-8
  3.  
  4. from time import sleep
  5. from selenium import webdriver
  6. from test01 import project as T1
  7. from test02 import project as T2
  8. #from test.test222 import projectClass
  9. from selenium.webdriver.support.ui import WebDriverWait
  10. from selenium.webdriver.support.ui import Select
  11. from selenium.webdriver.common.by import By
  12. from selenium.webdriver.support import expected_conditions as EC
  13. import unittest,time,os,logging,HTMLTestRunner,sys
  14.  
  15. #class ptestlist(unittest.TestSuite):
  16. class ptestlist(unittest.TestSuite):
  17. def test_module():
  18. suite1 = T1.suite
  19. suite2 = T2.suite
  20. alltests = unittest.TestSuite((suite1, suite2))
  21. return alltests
  22.  
  23. suite = test_module()
  24.  
  25. filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
  26. filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
  27. filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
  28. f=open(filename,encoding='utf-8',mode='a')
  29.  
  30. runner = HTMLTestRunner.HTMLTestRunner(
  31. stream=f,
  32. #title='Test Result/测试结果',
  33. title=filetestname+'--测试结果--',
  34. description=filetestname+'--测试报告--',
  35. verbosity=2)
  36. runner.run(suite)
  1. test01.py 测试用例集1,也可以单独进行测试并生成测试报告
  1. # test01.py 测试用例集1,也可以单独进行测试并生成测试报告
  2. # coding = utf-8
  3.  
  4. from time import sleep
  5. from selenium import webdriver
  6. from selenium.webdriver.support.ui import WebDriverWait
  7. from selenium.webdriver.support.ui import Select
  8. from selenium.webdriver.common.by import By
  9. from selenium.webdriver.support import expected_conditions as EC
  10. import unittest,time,os,HTMLTestRunner,sys
  11.  
  12. class projectTestSuite(unittest.TestSuite):
  13. def __init__(self):
  14. # 初始化,添加__init__以供调用,另在此添加所想测试的case形成测试集提供给suite
  15. unittest.TestSuite.__init__(self,map(projectClass,("test01OK","test02Search")))
  16. # 如果用于测试的类中所有的测试方法都以test开,可以用PyUnit模块提供的makeSuite()方法来构造一个TestSuite
  17. # return unittest.makeSuite(projectClass, "test")
  18.  
  19. class projectClass(unittest.TestCase):
  20. def setUp(self):
  21. "just for setUp"
  22. print("start test projectClass")
  23. self.driver= webdriver.Chrome()
  24. self.driver.get("http://www.baidu.com")
  25.  
  26. def test01OK(self):
  27. "test01:测试登录"
  28. driver = self.driver
  29. driver.find_element_by_link_text("登录").click()
  30. driver.find_element_by_id("TANGRAM__PSP_8__userName").send_keys("小泠哦")
  31. driver.find_element_by_id("TANGRAM__PSP_8__password").send_keys("900617poppyp")
  32. driver.find_element_by_id("TANGRAM__PSP_8__submit").click()
  33. sleep(3)
  34. a = driver.find_element_by_name("tj_home").get_attribute("text")
  35. if a == "小泠哦":
  36. print("the admin is 小泠哦")
  37. else:print("the admin is false")
  38. sleep(3)
  39. driver.find_element_by_name("tj_logout").click()
  40. b = driver.find_element_by_name("lb").get_attribute("text")
  41. if b == "登录":
  42. print("It's exist")
  43. else:print("No exist")
  44.  
  45. def test02Search(self):
  46. "test02:测试搜索"
  47. driver = self.driver
  48. driver.find_element_by_id("kw1").send_keys("ETAH")
  49. driver.find_element_by_id("su1").click()
  50. sleep(3)
  51. link1 = driver.find_element_by_id("")
  52. linktxt = link1.find_element_by_tag_name("a").get_attribute("text")
  53. print(linktxt)
  54.  
  55. def tearDown(self):
  56. driver = self.driver
  57. driver.quit()
  58.  
  59. class project():
  60. def suite():
  61. return projectTestSuite()
  62. suite = suite()
  63.  
  64. if __name__ == "__main__":
  65. filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
  66. filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
  67. filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
  68. #filename='G:/Auto Test/test/log/log.html'
  69. f=open(filename,encoding='utf-8',mode='a')
  70.  
  71. runner = HTMLTestRunner.HTMLTestRunner(
  72. stream=f,
  73. #title='Test Result/测试结果',
  74. title=filetestname+'--测试结果--',
  75. description=filetestname+'--测试报告--',
  76. verbosity=2)
  77.  
  78. runner.run(project.suite)
  1. # test02.py 测试用例集2,也可以单独进行测试并生成测试报告
  2. # coding = utf-8
  3.  
  4. from time import sleep
  5. from selenium import webdriver
  6. from selenium.webdriver.support.ui import WebDriverWait
  7. from selenium.webdriver.support.ui import Select
  8. from selenium.webdriver.common.by import By
  9. from selenium.webdriver.support import expected_conditions as EC
  10. import unittest,time,os,HTMLTestRunner,sys
  11.  
  12. class projectTestSuite(unittest.TestSuite):
  13. def __init__(self):
  14. unittest.TestSuite.__init__(self,map(projectClass,(
  15. "test03News",
  16. #"test04Search",
  17. "test05Fail"
  18. )))
  19.  
  20. class projectClass(unittest.TestCase):
  21. def setUp(self):
  22. "just for setUp"
  23. print("start test projectClass")
  24. self.driver= webdriver.Chrome()
  25. self.driver.get("http://www.baidu.com")
  26.  
  27. def test03News(self):
  28. "test03:测试新闻"
  29. driver = self.driver
  30. driver.find_element_by_link_text("新 闻").click()
  31. driver.find_element_by_link_text("互联网").click()
  32. new = driver.find_element_by_id("body")
  33. news = new.find_elements_by_tag_name("a")
  34. for element in news:
  35. if element.get_attribute("class") =="a3":
  36. return element.get_attribute("text")
  37.  
  38. def test04Search(self):
  39. "test04:测试搜索"
  40. driver = self.driver
  41. driver.find_element_by_id("kw1").send_keys("东信同邦")
  42. driver.find_element_by_id("su1").click()
  43. sleep(3)
  44. link1 = driver.find_element_by_id("")
  45. linktxt = link1.find_element_by_tag_name("a").get_attribute("text")
  46. print(linktxt)
  47.  
  48. def test05Fail(self):
  49. "test05:尝试制造fail"
  50. driver = self.driver
  51. A = driver.find_element_by_id("cp").get_attribute("text")
  52. print("A is:",A)
  53. self.assertEqual(A, "音乐")
  54.  
  55. def tearDown(self):
  56. driver = self.driver
  57. driver.quit()
  58.  
  59. class project():
  60. def suite():
  61. return projectTestSuite()
  62. suite = suite()
  63.  
  64. if __name__ == "__main__":
  65. filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
  66. filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
  67. filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
  68. #filename='G:/Auto Test/test/log/log.html'
  69. f=open(filename,encoding='utf-8',mode='a')
  70.  
  71. runner = HTMLTestRunner.HTMLTestRunner(
  72. stream=f,
  73. #title='Test Result/测试结果',
  74. title=filetestname+'--测试结果--',
  75. description=filetestname+'--测试报告--',
  76. verbosity=2)
  77.  
  78. runner.run(project.suite
  1. test02.py 测试用例集2,也可以单独进行测试并生成测试报告
  1. # test02.py 测试用例集2,也可以单独进行测试并生成测试报告
  2. # coding = utf-8
  3.  
  4. from time import sleep
  5. from selenium import webdriver
  6. from selenium.webdriver.support.ui import WebDriverWait
  7. from selenium.webdriver.support.ui import Select
  8. from selenium.webdriver.common.by import By
  9. from selenium.webdriver.support import expected_conditions as EC
  10. import unittest,time,os,HTMLTestRunner,sys
  11.  
  12. class projectTestSuite(unittest.TestSuite):
  13. def __init__(self):
  14. unittest.TestSuite.__init__(self,map(projectClass,(
  15. "test03News",
  16. #"test04Search",
  17. "test05Fail"
  18. )))
  19.  
  20. class projectClass(unittest.TestCase):
  21. def setUp(self):
  22. "just for setUp"
  23. print("start test projectClass")
  24. self.driver= webdriver.Chrome()
  25. self.driver.get("http://www.baidu.com")
  26.  
  27. def test03News(self):
  28. "test03:测试新闻"
  29. driver = self.driver
  30. driver.find_element_by_link_text("新 闻").click()
  31. driver.find_element_by_link_text("互联网").click()
  32. new = driver.find_element_by_id("body")
  33. news = new.find_elements_by_tag_name("a")
  34. for element in news:
  35. if element.get_attribute("class") =="a3":
  36. return element.get_attribute("text")
  37.  
  38. def test04Search(self):
  39. "test04:测试搜索"
  40. driver = self.driver
  41. driver.find_element_by_id("kw1").send_keys("东信同邦")
  42. driver.find_element_by_id("su1").click()
  43. sleep(3)
  44. link1 = driver.find_element_by_id("")
  45. linktxt = link1.find_element_by_tag_name("a").get_attribute("text")
  46. print(linktxt)
  47.  
  48. def test05Fail(self):
  49. "test05:尝试制造fail"
  50. driver = self.driver
  51. A = driver.find_element_by_id("cp").get_attribute("text")
  52. print("A is:",A)
  53. self.assertEqual(A, "音乐")
  54.  
  55. def tearDown(self):
  56. driver = self.driver
  57. driver.quit()
  58.  
  59. class project():
  60. def suite():
  61. return projectTestSuite()
  62. suite = suite()
  63.  
  64. if __name__ == "__main__":
  65. filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
  66. filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
  67. filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
  68. #filename='G:/Auto Test/test/log/log.html'
  69. f=open(filename,encoding='utf-8',mode='a')
  70.  
  71. runner = HTMLTestRunner.HTMLTestRunner(
  72. stream=f,
  73. #title='Test Result/测试结果',
  74. title=filetestname+'--测试结果--',
  75. description=filetestname+'--测试报告--',
  76. verbosity=2)
  77.  
  78. runner.run(project.suite)
  1.  

调用test case集,并生成测试报告的更多相关文章

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

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

  2. python selenium-webdriver 生成测试报告

    测试最后的一个重要的过程就是生成一份完整的测试报告,生成测试报告的主要是通过python的一个第三方模块HTMLTestRunner.py生成,但是生成的测试报告不是特别的美观,而且没有办法统计测试结 ...

  3. python接口自动化测试(七)unittest 生成测试报告

    用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...

  4. 3.5 unittest生成测试报告HTMLTestRunner

    3.5 unittest生成测试报告HTMLTestRunner 前言批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的.unittest里面是不 ...

  5. python语言(八)多线程、多进程、虚拟环境、unittest、生成测试报告

    一.多线程 进程与线程 进程:进程是资源(CPU.内存等)分配的最小单位,进程有独立的地址空间与系统资源,一个进程可以包含一个或多个线程 线程:线程是CPU调度的最小单位,是进程的一个执行流,线程依赖 ...

  6. unittest---unittest生成测试报告

    我们做测试的人员们都知道测试完成后,肯定是会生成一个测试报告,那么当我们做自动化的时候,这个自动化报告也可以自动生成吗?python当然可以了! HTMLTestRunner HTMLTestRunn ...

  7. Python单元测试框架unittest之生成测试报告(HTMLTestRunner)

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...

  8. python + pytest + allure生成测试报告

    pytest结合allure生成测试报告 环境搭建 要安装java环境,版本要是jdk1.8的,配置好java环境变量,不然输入allure命令会报错,JAVA_HOME环境,自行配置 安装allur ...

  9. python之单元测试_生成测试报告

    (1)HTMLTestRunner.py的下载路径:https://pan.baidu.com/s/1Yk2E8d8bIo5_rmpussOE9Q 提取码:0jae (2)HTMLTestRunner ...

随机推荐

  1. Unity3d Awake、OnEnable、Start生命周期

    Unity3d,Awake.OnEnable.Start,都是游戏开始运行前,所运行的方法. GameObject的Activity为true,脚本的enable为true时,其先后顺序为:Awake ...

  2. 一些Linux优化方法

    1. 利用栈做备胎,减少分配空间的几率,IO自己有一份缓存,如果超了就使用stack空间 2. 分散IO:代表readv,可以通过一次系统调用,将内容读到分散的缓存中,可以减少系统的系统调用

  3. 案例:我行我素购物系统 v1.1

    系统逻辑结构: import java.util.Scanner; public class ShoppingSystem { public static void main(String[] arg ...

  4. Python 代码实现模糊查询

    Python 代码实现模糊查询 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...

  5. noip 2012 借教室 (线段树 二分)

    /* 维护区间最小值 数据不超int 相反如果long long的话会有一组数据超时 无视掉 ll int */ #include<iostream> #include<cstdio ...

  6. Asp.net页面使用showModalDialog时Postback弹出新页面解决办法

    今天碰到一个让我一开始觉得莫名其妙的问题, 用window.showModalDialog打开一个.aspx文件,然后点击这个页面上一个button, 把页面的数据存入数据库之后,居然又打开一个这个页 ...

  7. 关于 rem 作为单位设置大小

    rem是相对长度单位.相对于根元素(即html元素)font-size计算值的倍数htm{font-size: 62.5%;}根元素(html)先设置一个font-size,一般情况下为了容易计算re ...

  8. centos 6.X 安装输入法

    1.打开终端 su 输入 密码 yum install "@Chinese Support" 2.接下来是启用中文输入法的操作 系统 ->首选项 ->输入法 3.在弹出 ...

  9. (转)C#Interface简介

    接口:描述可属于任何类或结构的一组相关功能,通过interface关键字来声明:接口只包含方法.委托或事件和属性的签名(接口包含的成员).不能包含字段(因为字段是包含数据的).方法的实现是“继承”接口 ...

  10. 19 Remove Nth Node From End of List(去掉链表中倒数第n个节点Easy)

    题目意思:去掉链表中倒数第n个节点 思路:1.两次遍历,没什么技术含量,第一次遍历计算长度,第二次遍历找到倒数第k个,代码不写了   2.一次遍历,两个指针,用指针间的距离去计算. ps:特别注意删掉 ...