# HwUnittestFrameworkPy2
python基于unittest自动化测试框架,参数化,可视化,功能封装
# 基础
[Python自动单元测试框架介绍](https://www.ibm.com/developerworks/cn/linux/l-pyunit/)
[Python单元测试框架基础](http://pyunit.sourceforge.net/pyunit_cn.html)
# 特点
1. python2语言,基于unittest
2. 由ini改为yaml文件参数化配置,实现配置与代码分离
3. 支持xlsx、csv、xml等格式数据驱动,实现数据与代码分离
4. log日志、report报告记录、生成和存储
5. 测试用例模板化,易编写
6. 自定义邮件发送测试结果
7. 支持Selenium和Request套用框架
# 目录结构
文件/文件夹 | 说明
-- | --
startup.py | 启动程序
cases | 测试用例
config | 配置文件
data | 数据驱动
driver | 驱动文件
log | 日志存放
report | 报告留存
result | 测试结果
screenshot | 过程截图
source | 封装的库类
![toc](https://github.com/hongweifuture/HwUnittestFrameworkPy2/blob/master/screenshot/toc.png)
# 使用方法
**请删除.gitignore**
## 安装python2
[python 安装教程](https://blog.csdn.net/z_johnny/article/details/50733843)
## 安装PyYaml模块
[YAML 中文文档](https://yq.aliyun.com/articles/509500)
```python
pip install PyYaml
```
## 编写用例
### 模板
框架调用测试用例,无论是手动添加suite还是discover自动识别测试用例,main都不会被调用,只是在脱离框子单独测试用例的时候会用到,模板使用为手动
```python
#!/usr/bin/python
# coding=utf-8
import unittest
class TestModule(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_Photo(self):
pass
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(TestModule("test_Photo"))
unittest.TextTestRunner().run(suite)
```
### 范例
```python
#!/usr/bin/python
# coding=utf-8
# Created by zhaohongwei on 2018-10-22
# Blog: http://blog.csdn.net/z_johnny
import unittest
class WebTest(unittest.TestCase):
'''Web Test'''
def setUp(self):
print 'one'
def tearDown(self):
'''If setUp() succeeded, the tearDown() method will be run whether runTest() succeeded or not.'''
print 'two'
def test_Case1(self):
self.assertEqual(1, 1, "Error")
def test_Case2(self):
self.assertNotEquals(2, 2, "Equals")
class APITest(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_Case1(self):
print u'\n 1 不等于 2'
self.assertEqual(1,2,"1 != 2")
def test_Case2(self):
self.assertEqual(3,3,"This's ok")
def test_Case3(self):
print 'APITest.test_Case3'
self.assertEqual(5,6,'ERROR')
def test_Case4(self):
print "This's ok"
self.assertEqual(3,3,"This's ok")
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(WebTest("test_Case1"))
suite.addTest(APITest("test_Case2"))
unittest.TextTestRunner().run(suite)
```
## 技巧1 用例添加log,引入HwLogging
HwLogging模块打包了logging的功能,配置参数化,输出格式化,使用方法同logging
```python
#from HwLogging import HwLogging
from source.HwLogging import HwLogging
self.logging = HwLogging().outputLog()
self.logging.debug()
self.logging.info()
self.logging.warning()
self.logging.error()
self.logging.critical()
```
格式化输出
```txt
2018-10-24 10:37:11,440 - HwUnittest.py : INFO -
2018-10-24 10:37:11,440 - HwUnittest.py : INFO The testcase number is : 3
2018-10-24 10:37:11,440 - HwUnittest.py : INFO The testcase name is : ANDROID.py
2018-10-24 10:37:11,440 - HwUnittest.py : INFO The testcase name is : Jenkins.py
2018-10-24 10:37:11,440 - HwUnittest.py : INFO The testcase name is : Web_API.py
2018-10-24 10:37:11,457 - ANDROID.py : WARNING 123456789
2018-10-24 10:37:11,457 - ANDROID.py : INFO Test Down
2018-10-24 10:37:11,459 - ANDROID.py : WARNING 123456789
2018-10-24 10:37:11,459 - ANDROID.py : ERROR This is error message
2018-10-24 10:37:11,459 - ANDROID.py : INFO Test Down
2018-10-24 10:37:11,460 - ANDROID.py : WARNING 123456789
2018-10-24 10:37:11,460 - ANDROID.py : INFO Test Down
2018-10-24 10:37:16,562 - HwCutfile.py : INFO Has been cut the file is 目前最新版本2018_10_24_Wednesday_10_37_11.html
```
## 技巧2 输出报告文件 可选中文或者英文
使用unittest,生成html报告,由于使用在线Bootstrap,需要联网,离线模式排版不美观
```python
suite = unittest.TestSuite()
# HwStartup(suite, 'CN') , you must choose
# you must choose CN or EN,it's report language
HwStartup(suite, 'CN').startup()
#HwStartup(suite, 'EN').startup()
```
![reporten](https://github.com/hongweifuture/HwUnittestFrameworkPy2/blob/master/screenshot/reporten.png)
![reporten](https://github.com/hongweifuture/HwUnittestFrameworkPy2/blob/master/screenshot/reportcn.png)
## 技巧3 发送邮件
HwSendEmail打包smtp邮件,默认发送result文件夹附件,只需传送邮件标题和内容即可
```python
# send email , you can choose
ISOTIMEFORMAT='_%Y-%m-%d_%A'
current_time =str(time.strftime(ISOTIMEFORMAT))
email_tiltle = 'johnny test'+'%s'%current_time # as johnny test_2016-06-20_Monday
email_content = u'本轮自动化测试完成,详情请查看附件,本邮件是程序自动发送,请勿回复!'
HwSendEmail(email_tiltle,email_content).sendemail()
```
## 技巧4 测试版本留存
可配置source和destination文件夹,对文件进行移动并留存
```python
# HwFileMove() move result to report , you can choose
HwFileMove().moveFile()
```
## 技巧5 删除pyc
调试脚本过程中会出现pyc,可选进行删除
```python
# delde pyc , you can choose
HwCleanPyc().cleanPyc()
```
# bug
没有打印信息的测试用例,html报告无法收起
# extend
1. 加入数据驱动,如excel
1. 加入截图功能
1. 加入统计图
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
python基于unittest自动化测试框架,参数化,模块化,可视化.zip (32个子文件)
资料总结
screenshot
toc.png 9KB
.gitignore 1KB
reportcn.png 33KB
reporten.png 30KB
data
.gitignore 1KB
source
__init__.py 77B
HwLogging.py 2KB
HwTestReportEN.py 27KB
HwTestReportCN.py 27KB
HwUnittest.py 2KB
HwSendEmail.py 4KB
HwCleanPyc.py 695B
HwTestRunner.py 2KB
HwCutfile.py 2KB
cases
__init__.py 176B
Web_API.py 1KB
ANDROID.py 1KB
Jenkins.py 526B
driver
geckodriver.exe 12.24MB
.gitignore 1KB
report
2018_10_24_Wednesday_10_37_11-2018-10-24-Wednesday-10_37_16
目前最新版本2018_10_24_Wednesday_10_37_11.html 16KB
.gitignore 1KB
report2018_10_24_Wednesday_11_18_08-2018-10-24-Wednesday-11_18_13
report2018_10_24_Wednesday_11_18_08.html 16KB
.gitignore 1KB
startup.py 1KB
README.md 6KB
log
cache.log 3KB
config
configEmail.yaml 474B
configCutFile.yaml 291B
configReport.yaml 101B
configLOG.yaml 891B
result
.gitignore 1KB
共 32 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 常用爆破用户名字典top500
- meta-llama-3-8b-instruct 的 model-00003-of-00004.safetensors 的2/3
- bootstrap-select.js bootstrap-select.css
- EasyPoi Excel和 Word简易工具类
- 华为实验一 MPI 矩阵运算
- 网卡MAC地址修改工具 HardDiskSNC HWID changer 等电脑信息修改工具小软件合集(8个).zip
- 华为实验一 MPI 矩阵运算
- mysql语句大全及用法简介及基础教程及特点阐述.txt
- 指令调度和延迟分支简介及基础教程及特点阐述.txt
- HTML5小游戏【动态视力-考眼力的小游戏】游戏源码分享下载 - dtsl.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功