调用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 ...
随机推荐
- Zlib文件压缩和解压
开源代码:http://www.zlib.net/zlib使用手册:http://www.zlib.net/manual.htmlzlib wince版:http://www.tenik.co.jp/ ...
- IDL绘制黑体辐射曲线
普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况.绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义.1900年普朗克引进量子概念,将辐射当做不连续的量子发射,成功地从 ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- php 在web端读出pdf 与各种文件下载
单纯的下载功能实现 <?php // 表示调用文本类型为pdf的应用 header('Content-type: application/pdf'); // 这句可以输出下载页面进行下载 hea ...
- XlFileFormat
-----转载:http://hi.baidu.com/liu_haitao/item/900ddb38979188c22f8ec26e 18 XlFileFormat.xlAddIn Microso ...
- (转)PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
在看帝国cms的connect.php是发现第一句是error_reporting(E_ALL ^ E_NOTICE);以前也没注意过这个语句,知道是设置错误提示的,但不清楚具体怎样设置使用.下面从网 ...
- (Error) The type AESKeyGenerator is not accessible due to restriction on required library.
error for 'Access restriction: The type AESKeyGenerator is not accessible due to restriction on requ ...
- CSS 布局Float 【2】
1.页面标准文档流.浮动层.float属性 1.1 文档流 HTML页面的标准文档流(默认布局)是:从上到下,从左到右,遇块(块级元素)换行. 1.2 浮动层 浮动层:给元素的float属性赋值后,就 ...
- 关于C#编程中引用与值类型赋值的一些容易犯错的地方
值类型与引用类型的区别在于:值类型在赋值的时候是拷贝值,引用类型在赋值的时候的拷贝引用.记住这一个原则,我们再来分析一些具体情况: PointStruct pt1 = ,); PointStruct ...
- eclipse慢 优化(转)
1.打开 eclipse.ini -showsplash com.genuitec.myeclipse.product --launcher.XXMaxPermSize 256M -vmargs -D ...