python 轻量单元测试框架JzFramework下载
(http://download.csdn.net/detail/z_johnny/9683404)
目录结构
说明
文件/文件夹 | 说明 |
---|---|
startup.py | 启动程序 |
cases | 测试用例 |
config | 配置文件 |
date | 数据驱动,如excel,未做 |
log | 日志存放 |
report | 报告存放 |
src | 封装的库类 |
功能
自动运行cases下的测试用例,合并生成htnl测试报告,将报告发送到指定邮箱(附件自定义)
注意:
1.测试用例必须执行无错误
2.测试用例支持logging及JzLogging,输出格式不同,见报告
3.测试用例继承unittest及部分nose,故格式要遵循要求
4.可定义多个logging输出到log文件夹,如running.log、error.log
举例
配置文件logConfig.ini
测试用例
1.一个用例一个类,一个测试方法(推荐)
2.测试用例基本格式点我传送
3.使用使用我二次封装的类(推荐)
#!/usr/bin/python
# coding=utf-8
'''
FuncName: example1.py
Desc: example
Date: 2016-11-03 08:30
Author: johnny
'''
from src.Jzps import Jzps
import unittest
import ConfigParser,os
from src.JzLogging import JzLogging
class Case1(unittest.TestCase):
u'''使用jzps'''
def setUp(self):
self.logging = JzLogging('./config/logConfig.ini').outputLog()
self.driver = Jzps('firefox')
self.driver.wait(30)
self.base_url = "http://www.baidu.com"
self.verificationErrors = []
self.accept_next_alert = True
def test_jl(self):
u'''百度搜索Johnny'lab'''
driver = self.driver
driver.get(self.base_url + "/")
driver.wait(30)
driver.send_keys("id=kw",u"Johnny'lab")
#driver.find_element_by_id("kw").send_keys('selenium python')
driver.click("id=su")
#driver.find_element_by_id('su').click()
self.logging.critical('logger critical message')
driver.wait(30)
driver.quit()
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
class Case2(unittest.TestCase):
u'''断言'''
def setUp(self):
self.a = 2
self.b = 3
def test_minus(self):
u'''一个成功一个失败'''
print u'失败'
self.assertEqual(self.a - self.b, 2)
def test_add(self):
u'''成功'''
self.assertEqual(self.a + self.b, 5)
class Case3(unittest.TestCase):
u"""jzps框架"""
def setUp(self):
self.driver = Jzps("firefox")
self.driver.wait(30)
self.base_url = "http://www.baidu.com"
self.verificationErrors = []
self.accept_next_alert = True
def test_search(self):
u'''报错'''
driver = self.driver
driver.get(self.base_url + "/")
driver.send_keys("id=kw11111",u"Johnny'lab")
driver.click("id=su")
driver.quit()
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(Case1("test_jl"))
suite.addTest(Case2("test_minus"))
suite.addTest(Case2("test_add"))
suite.addTest(Case3("test_search"))
unittest.TextTestRunner().run(suite)
使用logging和JzLogging的区别
logging,只输出print内容
JzLogging,输出print加logging内容
相关模块
Python smtplib发送邮件 包含文本、附件、图片等
python ConfigParser 参数化配置 学习笔记