基于unittest测试框架的扩展
1 unittest介绍
Unittest,Python自带的单元测试框架,PyUnit类包含TestResult,TestCase, TestSuite,TextTestResult,TextTestRunner几个类,
然后结合HTMLTestRunner.py。其关系如下:
但unittest作为一个自动化测试框架还是存在很多不足的,下面是unittest工作流程及部分不足点:
2 unitest缺点分析及扩展
从上面可以看到unittest作为一个自动化测试框架最少存在以下几方面的不足:
a 测试脚本和测试数据全部在测试类了,评审,修改都需要跟代码打交道,增加难度。
b 一组测试数据对应一个测试方法,脚本冗余。
c 测试报告中显示以模块,类,方法为维度,不直观。
针对a,增加loadModul,loadTestClassFromModules(获取测试类及方法),creatTestCaseDataByPath(获取用例数据) ;
针对b, 增加ParametrizedTestCase(参数化读取测试数据);
针对c, 修改HTMLTestRunner.py模块中相关测试结果显示标题。
相关类图及运行流程见下:
相关源代码见: https://gitlab.com/opg.li.taojun/unittestExBase.git
3 unittest扩展后用例说明及演示
测试用例格式:
对应测试类:
测试结果显示:
测试类继承ParametrizedTestCase,增加成员__interfaceName__,其值为对应的测试的接口名称,和测试用例中的interfaceName对应,方法名称和测试用例中的operationSteps对应。
相关例子见:https://github.com/litaojun/unittestExtend.git
下载后运行python testcaseRunMgr "例子所在路径"
基于unittest测试框架的扩展的更多相关文章
- 基于Python的接口自动化-unittest测试框架和ddt数据驱动
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...
- Python 下的unittest测试框架
unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...
- python利用unittest测试框架组织测试用例的5种方法
利用unittest测试框架可以编写测试用例,执行方式分两大类:利用main方法和利用testsuite,其中利用测试套件来组织测试用例可以有4种写法. 在此之前,先了解几个概念 TestCase:所 ...
- Python接口测试实战3(下)- unittest测试框架
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- <day002>Selenium基本操作+unittest测试框架
任务1:Selenium基本操作 from selenium import webdriver # 通用选择 from selenium.webdriver.common.by import By # ...
- unittest测试框架详解
单元测试的定义 1. 什么是单元测试? 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类,一般是开发来做的,按照测试 ...
- unittest测试框架
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...
- 基于POM---UI测试框架
为什么会出现这个半自动化UI测试框架 我进入公司的前一个月从事的手工测试,为了提高自己的测试效率在工作时间之外写了一个半自动化的UI测试(害怕手工测试做久了,忘记自己还学过软件开发), 为什么我把它叫 ...
- 基于python的unittest测试框架集成到jenkins(Mac)
1.jenkins部分 1.1 安装jenkins jenkins下载地址:https://jenkins.io/download/ 安装步骤,疯狂点击下一步 1.2 打开jenkins服务 在浏览器 ...
随机推荐
- python学习之基本类型
#我的第一个python程序 print("hello world"); #多行字符串 print("""\ Usage: thingy [OPTIO ...
- ②SpringBoot之Web综合开发
Spring boot初级教程 :<SpringBoot入门教学篇①>,方便大家快速入门.了解实践Spring boot特性,本文介绍springBoot的web开发 web开发sprin ...
- 开发沉思录 - 记大数据平台的一次 BUG井喷
研究REST提交重启:终于提交成功了,首先一个错误:地址IP地址的http://hdp0:8080/api/v1/clusters/HDP/requests ,被我错误写成了request,当误了大量 ...
- Array数组(PHP学习)
什么是数组? 答:就是一组数. 数组的创建: <?php $Arr = array('姓名'=>'张三','身高'=>'174','家乡'=>'上海'); print_r($A ...
- Activity小技巧
随时随地退出程序 新建一个结合类对所有活动进行管理. public class ActivityCollector{ public static List<Activity> activi ...
- 有趣的java小项目------猜拳游戏
package com.aaa; //总结:猜拳游戏主要掌握3个方面:1.人出的动作是从键盘输入的(System.in)2.电脑是随机出的(Random随机数)3.双方都要出(条件判断) import ...
- HBuilder使用技巧
ctrl+ Tab 切换 ctrl + shift + D 查找所写的函数
- PL/SQL 训练11--包
--所谓包,就是把一组PL/SQL的代码元素组织在一个命名空间下.--一种可以把程序或者其他的PL/SQL元素比如游标.类型.变量的组织结构在一起的结构(包括逻辑结构和物理结构)--包提供了非常重要的 ...
- 技术流:6大类37种方式教你在国内推广App
转自:http://www.gamelook.com.cn/2015/01/201906 如何有效的推广自己App,是每个发行商都要考虑的问题,当然每个产品都有适合自己的推广方式.本文就集结了包括应用 ...
- 爬取豆瓣电影Top250信息
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import requests from pyquery import PyQ ...