结构是

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集,并生成测试报告的更多相关文章

  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. python 学习笔记 copy

    浅copy >>> a=[1,2,3,[4,5,6]]>>> a[1, 2, 3, [4, 5, 6]]>>> a[3].append(7)> ...

  2. Android程序版本更新--通知栏更新下载安装(转)

    Android应用检查版本更新后,在通知栏下载,更新下载进度,下载完成自动安装,效果图如下: 检查当前版本号 AndroidManifest文件中的versionCode用来标识版本,在服务器放一个新 ...

  3. POJ 1265 Area POJ 2954 Triangle Pick定理

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5227   Accepted: 2342 Description ...

  4. QT pro文件解析

    在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件. pro文件有以下关键字:TEMPLATE.TARGET.DESTDIR.DEPENDPATH.INCLUD ...

  5. Oracle 安装中遇到的问题

    第一次用甲骨文,这期待!虽然mySQL也是甲骨文的. 去官网下了Oracle G11 R2 X64,本人的电脑是64位的win7,没开防火墙. 按照网上众多的教程,做完安装,可是安装过程不是那么的顺利 ...

  6. 转 - CSS深入理解vertical-align和line-height的基友关系

    一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦 ...

  7. Web项目练习总结(错误校正篇)

    老师布置任务,从SVN上弄个项目来练练手,熟悉下过程. myeclipse安装SVN 然后把MobileManageSys下下来 然后漫长的等待... 然后配置数据库,导入,这里用的是SQLyog,其 ...

  8. 樱花雨 www.yinghy.com

    自己刚申请的域名,和主机,以后就用这个来试着做点东西

  9. c - 向一个排序好的数组插入一个数,插入后数组依然是排序好的

    概述 因为这里只是演示插入1个数,这里我不用malloc再重新分配,而是将原先数组的腾出一个占位符. 完整代码如下: #include <stdio.h> #define LEN 6 // ...

  10. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...