调用test case集,并生成测试报告
结构是
- test_all.py 进行配置,执行所有测试用例集,并合并测试报告到同一个文件
- #test_all.py 进行配置,执行所有测试用例集
- # coding = utf-8
- from time import sleep
- from selenium import webdriver
- from test01 import project as T1
- from test02 import project as T2
- #from test.test222 import projectClass
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support.ui import Select
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support import expected_conditions as EC
- import unittest,time,os,logging,HTMLTestRunner,sys
- #class ptestlist(unittest.TestSuite):
- class ptestlist(unittest.TestSuite):
- def test_module():
- suite1 = T1.suite
- suite2 = T2.suite
- alltests = unittest.TestSuite((suite1, suite2))
- return alltests
- suite = test_module()
- filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
- filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
- filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
- f=open(filename,encoding='utf-8',mode='a')
- runner = HTMLTestRunner.HTMLTestRunner(
- stream=f,
- #title='Test Result/测试结果',
- title=filetestname+'--测试结果--',
- description=filetestname+'--测试报告--',
- verbosity=2)
- runner.run(suite)
- test01.py 测试用例集1,也可以单独进行测试并生成测试报告
- # test01.py 测试用例集1,也可以单独进行测试并生成测试报告
- # coding = utf-8
- from time import sleep
- from selenium import webdriver
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support.ui import Select
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support import expected_conditions as EC
- import unittest,time,os,HTMLTestRunner,sys
- class projectTestSuite(unittest.TestSuite):
- def __init__(self):
- # 初始化,添加__init__以供调用,另在此添加所想测试的case形成测试集提供给suite
- unittest.TestSuite.__init__(self,map(projectClass,("test01OK","test02Search")))
- # 如果用于测试的类中所有的测试方法都以test开,可以用PyUnit模块提供的makeSuite()方法来构造一个TestSuite
- # return unittest.makeSuite(projectClass, "test")
- class projectClass(unittest.TestCase):
- def setUp(self):
- "just for setUp"
- print("start test projectClass")
- self.driver= webdriver.Chrome()
- self.driver.get("http://www.baidu.com")
- def test01OK(self):
- "test01:测试登录"
- driver = self.driver
- driver.find_element_by_link_text("登录").click()
- driver.find_element_by_id("TANGRAM__PSP_8__userName").send_keys("小泠哦")
- driver.find_element_by_id("TANGRAM__PSP_8__password").send_keys("900617poppyp")
- driver.find_element_by_id("TANGRAM__PSP_8__submit").click()
- sleep(3)
- a = driver.find_element_by_name("tj_home").get_attribute("text")
- if a == "小泠哦":
- print("the admin is 小泠哦")
- else:print("the admin is false")
- sleep(3)
- driver.find_element_by_name("tj_logout").click()
- b = driver.find_element_by_name("lb").get_attribute("text")
- if b == "登录":
- print("It's exist")
- else:print("No exist")
- def test02Search(self):
- "test02:测试搜索"
- driver = self.driver
- driver.find_element_by_id("kw1").send_keys("ETAH")
- driver.find_element_by_id("su1").click()
- sleep(3)
- link1 = driver.find_element_by_id("")
- linktxt = link1.find_element_by_tag_name("a").get_attribute("text")
- print(linktxt)
- def tearDown(self):
- driver = self.driver
- driver.quit()
- class project():
- def suite():
- return projectTestSuite()
- suite = suite()
- if __name__ == "__main__":
- filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
- filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
- filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
- #filename='G:/Auto Test/test/log/log.html'
- f=open(filename,encoding='utf-8',mode='a')
- runner = HTMLTestRunner.HTMLTestRunner(
- stream=f,
- #title='Test Result/测试结果',
- title=filetestname+'--测试结果--',
- description=filetestname+'--测试报告--',
- verbosity=2)
- runner.run(project.suite)
- # test02.py 测试用例集2,也可以单独进行测试并生成测试报告
- # coding = utf-8
- from time import sleep
- from selenium import webdriver
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support.ui import Select
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support import expected_conditions as EC
- import unittest,time,os,HTMLTestRunner,sys
- class projectTestSuite(unittest.TestSuite):
- def __init__(self):
- unittest.TestSuite.__init__(self,map(projectClass,(
- "test03News",
- #"test04Search",
- "test05Fail"
- )))
- class projectClass(unittest.TestCase):
- def setUp(self):
- "just for setUp"
- print("start test projectClass")
- self.driver= webdriver.Chrome()
- self.driver.get("http://www.baidu.com")
- def test03News(self):
- "test03:测试新闻"
- driver = self.driver
- driver.find_element_by_link_text("新 闻").click()
- driver.find_element_by_link_text("互联网").click()
- new = driver.find_element_by_id("body")
- news = new.find_elements_by_tag_name("a")
- for element in news:
- if element.get_attribute("class") =="a3":
- return element.get_attribute("text")
- def test04Search(self):
- "test04:测试搜索"
- driver = self.driver
- driver.find_element_by_id("kw1").send_keys("东信同邦")
- driver.find_element_by_id("su1").click()
- sleep(3)
- link1 = driver.find_element_by_id("")
- linktxt = link1.find_element_by_tag_name("a").get_attribute("text")
- print(linktxt)
- def test05Fail(self):
- "test05:尝试制造fail"
- driver = self.driver
- A = driver.find_element_by_id("cp").get_attribute("text")
- print("A is:",A)
- self.assertEqual(A, "音乐")
- def tearDown(self):
- driver = self.driver
- driver.quit()
- class project():
- def suite():
- return projectTestSuite()
- suite = suite()
- if __name__ == "__main__":
- filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
- filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
- filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
- #filename='G:/Auto Test/test/log/log.html'
- f=open(filename,encoding='utf-8',mode='a')
- runner = HTMLTestRunner.HTMLTestRunner(
- stream=f,
- #title='Test Result/测试结果',
- title=filetestname+'--测试结果--',
- description=filetestname+'--测试报告--',
- verbosity=2)
- runner.run(project.suite)
- test02.py 测试用例集2,也可以单独进行测试并生成测试报告
- # test02.py 测试用例集2,也可以单独进行测试并生成测试报告
- # coding = utf-8
- from time import sleep
- from selenium import webdriver
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support.ui import Select
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support import expected_conditions as EC
- import unittest,time,os,HTMLTestRunner,sys
- class projectTestSuite(unittest.TestSuite):
- def __init__(self):
- unittest.TestSuite.__init__(self,map(projectClass,(
- "test03News",
- #"test04Search",
- "test05Fail"
- )))
- class projectClass(unittest.TestCase):
- def setUp(self):
- "just for setUp"
- print("start test projectClass")
- self.driver= webdriver.Chrome()
- self.driver.get("http://www.baidu.com")
- def test03News(self):
- "test03:测试新闻"
- driver = self.driver
- driver.find_element_by_link_text("新 闻").click()
- driver.find_element_by_link_text("互联网").click()
- new = driver.find_element_by_id("body")
- news = new.find_elements_by_tag_name("a")
- for element in news:
- if element.get_attribute("class") =="a3":
- return element.get_attribute("text")
- def test04Search(self):
- "test04:测试搜索"
- driver = self.driver
- driver.find_element_by_id("kw1").send_keys("东信同邦")
- driver.find_element_by_id("su1").click()
- sleep(3)
- link1 = driver.find_element_by_id("")
- linktxt = link1.find_element_by_tag_name("a").get_attribute("text")
- print(linktxt)
- def test05Fail(self):
- "test05:尝试制造fail"
- driver = self.driver
- A = driver.find_element_by_id("cp").get_attribute("text")
- print("A is:",A)
- self.assertEqual(A, "音乐")
- def tearDown(self):
- driver = self.driver
- driver.quit()
- class project():
- def suite():
- return projectTestSuite()
- suite = suite()
- if __name__ == "__main__":
- filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
- filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
- filename=os.path.join(os.getcwd()+'/log/'+filetime+'-'+filetestname+'.html')
- #filename='G:/Auto Test/test/log/log.html'
- f=open(filename,encoding='utf-8',mode='a')
- runner = HTMLTestRunner.HTMLTestRunner(
- stream=f,
- #title='Test Result/测试结果',
- title=filetestname+'--测试结果--',
- description=filetestname+'--测试报告--',
- verbosity=2)
- runner.run(project.suite)
调用test case集,并生成测试报告的更多相关文章
- Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,
测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...
- python selenium-webdriver 生成测试报告
测试最后的一个重要的过程就是生成一份完整的测试报告,生成测试报告的主要是通过python的一个第三方模块HTMLTestRunner.py生成,但是生成的测试报告不是特别的美观,而且没有办法统计测试结 ...
- python接口自动化测试(七)unittest 生成测试报告
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...
- 3.5 unittest生成测试报告HTMLTestRunner
3.5 unittest生成测试报告HTMLTestRunner 前言批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的.unittest里面是不 ...
- python语言(八)多线程、多进程、虚拟环境、unittest、生成测试报告
一.多线程 进程与线程 进程:进程是资源(CPU.内存等)分配的最小单位,进程有独立的地址空间与系统资源,一个进程可以包含一个或多个线程 线程:线程是CPU调度的最小单位,是进程的一个执行流,线程依赖 ...
- unittest---unittest生成测试报告
我们做测试的人员们都知道测试完成后,肯定是会生成一个测试报告,那么当我们做自动化的时候,这个自动化报告也可以自动生成吗?python当然可以了! HTMLTestRunner HTMLTestRunn ...
- Python单元测试框架unittest之生成测试报告(HTMLTestRunner)
前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...
- python + pytest + allure生成测试报告
pytest结合allure生成测试报告 环境搭建 要安装java环境,版本要是jdk1.8的,配置好java环境变量,不然输入allure命令会报错,JAVA_HOME环境,自行配置 安装allur ...
- python之单元测试_生成测试报告
(1)HTMLTestRunner.py的下载路径:https://pan.baidu.com/s/1Yk2E8d8bIo5_rmpussOE9Q 提取码:0jae (2)HTMLTestRunner ...
随机推荐
- Unity3d Awake、OnEnable、Start生命周期
Unity3d,Awake.OnEnable.Start,都是游戏开始运行前,所运行的方法. GameObject的Activity为true,脚本的enable为true时,其先后顺序为:Awake ...
- 一些Linux优化方法
1. 利用栈做备胎,减少分配空间的几率,IO自己有一份缓存,如果超了就使用stack空间 2. 分散IO:代表readv,可以通过一次系统调用,将内容读到分散的缓存中,可以减少系统的系统调用
- 案例:我行我素购物系统 v1.1
系统逻辑结构: import java.util.Scanner; public class ShoppingSystem { public static void main(String[] arg ...
- Python 代码实现模糊查询
Python 代码实现模糊查询 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...
- noip 2012 借教室 (线段树 二分)
/* 维护区间最小值 数据不超int 相反如果long long的话会有一组数据超时 无视掉 ll int */ #include<iostream> #include<cstdio ...
- Asp.net页面使用showModalDialog时Postback弹出新页面解决办法
今天碰到一个让我一开始觉得莫名其妙的问题, 用window.showModalDialog打开一个.aspx文件,然后点击这个页面上一个button, 把页面的数据存入数据库之后,居然又打开一个这个页 ...
- 关于 rem 作为单位设置大小
rem是相对长度单位.相对于根元素(即html元素)font-size计算值的倍数htm{font-size: 62.5%;}根元素(html)先设置一个font-size,一般情况下为了容易计算re ...
- centos 6.X 安装输入法
1.打开终端 su 输入 密码 yum install "@Chinese Support" 2.接下来是启用中文输入法的操作 系统 ->首选项 ->输入法 3.在弹出 ...
- (转)C#Interface简介
接口:描述可属于任何类或结构的一组相关功能,通过interface关键字来声明:接口只包含方法.委托或事件和属性的签名(接口包含的成员).不能包含字段(因为字段是包含数据的).方法的实现是“继承”接口 ...
- 19 Remove Nth Node From End of List(去掉链表中倒数第n个节点Easy)
题目意思:去掉链表中倒数第n个节点 思路:1.两次遍历,没什么技术含量,第一次遍历计算长度,第二次遍历找到倒数第k个,代码不写了 2.一次遍历,两个指针,用指针间的距离去计算. ps:特别注意删掉 ...