结构是

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. Android三种实现自定义ProgressBar的方式介绍

    一.通过动画实现 定义res/anim/loading.xml如下: View Row Code<?xml version="1.0" encoding="UTF- ...

  2. java的通信机制

    通信机制无非就那几种:http访问.socket访问: http又分为:jsp.servlet.html,用的就是get和post方法 socket则可分为:tcp或者udp方式 从以上内容又衍生出其 ...

  3. Android MediaCodec 使用例子

    Android MediaCodec 使用例子 下面的例子是使用MediaCodec 录制到文件的例子. 1 public class AvcEncoder { private MediaCodec ...

  4. HTML5 微信二维码提示框

    这是一个js的小案例,主要效果是显示一个微信二维码的提示框,非常简单实用. 源码如下: JS部分 <script src="js/jquery-1.8.3.min.js"&g ...

  5. codevs2618核电站问题

    /* 因为m为连续放的个数 所以状态要包括这个条件 定义状态:f[n][m]表示第n个坑连续放了m个 转移:分两种 1. 第x个坑 放 即m>=1 则 f[x][k]=f[x-1][k-1] 2 ...

  6. HighCharts常用设置(摘抄笔录)

  7. AmazeUI 模态框封装

    /** * 模态窗口 */ window.Modal = { tpls:{ alert:'<div class="am-modal am-modal-alert" tabin ...

  8. CSS对浏览器的兼容性常见处理方式小结

    CSS技巧 1.div的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了. 缺点:要控制内 ...

  9. $(document).ready(function(){}),$().ready(function(){})和$(function(){})三个有区别么

    三者都是一样的,最完整的写法是:$(document).ready(function(){})ready() 函数仅能用于当前文档,因此无需选择器.所以document选择器可以不要,那么就可以写成: ...

  10. 泛型,迭代器,LinkedList<E>

    1 <e>里面只能填类,不能用基本数据类型,不过integer 这样的的也行 2在模板类(泛型类中)class demo<e>由于不知道e是那个,所有通常都是重写大家都有的to ...