调用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 ...
随机推荐
- Linux磁盘管理:LVM逻辑卷的拉伸及缩减
①查看当前VG的信息,保证VG中有足够的空闲空间 通过 vgdisplay 或者 vgs 命令 [root@rusky ~]# vgs rusky-vg VG #PV #LV #SN Attr VSi ...
- Linux开发工具之Makefile(下)
二.Makefile(下) 01.make常用内嵌函数 函数调用 $(function arguments) $(wildcard PATTERN) 当前目录下匹配模式的文件 例如:src ...
- Linq编程101例
原文地址:101 LINQ Samples in C# Part1 - Restriction Operators Part2 - Projection Operators Part3 - Parti ...
- HTML5 文件域+FileReader 读取文件(一)
在HTML5以前,HTML的文件上传域的功能具有很大的局限性,这种局限性主要体现在如下两点: 每次只能选择一个文件进行上传 客户端代码只能获取被上传文件的文件路径,无法访问实际的文件内容 一.File ...
- configSections(配置文件)
转载:http://www.cnblogs.com/jhxk/articles/1609182.html 由于最近一个项目的数据库变动比较频繁, 为了减少数据层的负担, 打算采用.net的MVC框架, ...
- (转)dedecms入门
学dedecms一段时间了,把我的入门体会和大家分享一下. 什么是dedecm cms(内容管理系统):现在有各种内容模型,如书评(包括书名,出版社,评论等字段).cms一般有用户后台,网页的用户可以 ...
- CompareValidator ASP控件
定义和用法 CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较. 注释:如果输入控件为空,则不会调用任何验证函数,并且验证将成功.使用 Req ...
- jQuery选择器部分知识点总结
一.jQuery选择器的优势 1.使用CSS选择器时,开发人员需要考虑主流浏览器是否支持某些选择器,而在jQuery中,开发人员则可以放心的使用jQuery选择器而无需考虑浏览器是否支持这些选择器. ...
- 【USACO 1.2.2】方块转换
[问题描述] 一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案.写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 1:转90度:图案按顺 ...
- 用BroadcastReceiver监听网络状态的变化
在用户浏览网络信息时,如果网络突然断开,可以及时的提醒用户网络已断开.要实现这个功能,我们可以实现一个广播接收者来接收网络状态改变的广播,当由连接状态变为断开状态时,系统会发送一条广播,广播接收者接收 ...