Selenium-Unittest单元测试框架

news2024/11/27 16:31:34

1、Unittest介绍

为什么要学习单元测试框架
测试用例的组织与运行需要单元测试框架的参与,从而满足不同测试场景的需要,单元测试框架提供了丰富的比较方法:实际结果与预期结果的对比==测试结果
单元测试框架提供了丰富的日志:给出测试用例失败与通过的数目及执行失败的原因
常见的单元测试框架有哪些
Doctest、unittest、pytest、nose等等
Java--》junit(testng)、C++--》 googleTest、c#--》nunit

2、Unittest核心组件

3、Unittest工作原理

Testcase:一个 testcase 就是一个测试用例。Setup(测试环境的准备)、run(测试执行)、teardown(测试环境的还原)。
Testsuite(集合或套件):多个测试用例的集合就是 suite,一个suite可以包含多个测试用例,也可以嵌套 suite。
TestLoader:用来加载 testcase到testsuite 中的。
TestTestRunner:用例执行测试用例(run 方法),测试结果会保存在 TestTestresult 中。
fixture:一个测试用例环境的搭建和销毁。

 

4、Unittest单元测试用例的组织

构建单元测试用例
场景:以字符串替换举例

 

 

5、构建测试套件(优化测试用例)

单元测试用例的增多,在各个测试代码中会有很多相似的操作,考虑setUp(测试环境的准备)、tearDown(测试环境的还原)

 

6、组织多个测试用例(深度优化测试用例)

测试用例的继续优化:所有的测试用例不需要都用单独的类进行存放,该方式比较耗时,通过test开头的函数来存放测试用例。

 

7、构建测试套件

多个测试用例的集合就是suite,一个suite可以包含多个测试用例,也可以嵌套suite。

 

8、测试套件优化

执行部分测试用例

 

执行某测试类下的全部测试用例,unittest模块中提供一个makesuite

9、多个测试类的控制

 

10、执行测试

首先将StringReplaceTestCase放在单独的一个py文件中StringReplace.py
将注释放在方法内,作为方法的说明。
执行部分测试用例,创建一个test_suite.py,用户控制措施用例的执行
运行全部测试用例。

11、测试用例的跳过

修改StringReplace文件,理解skip、skipif、skipunless

12、Unittest框架总结

unittest.TestCase:TestCase类,所有测试用例类继承的基本类。class Test(unittest.TestCase):
unittest.main():使用可以方便的将一个单元测试模块变为可直接运 行的测试脚本
unittest.TestSuite():unittest框架的TestSuite()类是用来创建 测试套件的。
unittest.TextTestRunner():unittest框架的TextTestRunner()类, 通过该类下面的run()方法来运行suite所组装的测试用例,入参为 suite测试套件。
unittest.skip():装饰器,当运行用例时,有些用例可能不想执行,可用装饰器 暂时屏蔽该条测试用例。常见的用法如想调试某一测试用例,可先屏蔽其他用例
@unittest.skip(reason): skip(reason)装饰器:无条件跳过装饰的测试,并说 明跳过测试的原因。 
@unittest.skipIf(reason): skipIf(condition,reason)装饰器:条件为真时, 跳过装饰的测试,并说明跳过测试的原因。
@unittest.skipUnless(reason): skipUnless(condition,reason)装饰器:条件 为假时,跳过装饰的测试,并说明跳过测试的原因

setUp()方法用于测试用例执行前的初始化工作。如测试用 例中需要访问浏览器,可以在setUp中实例化浏览器驱动。 
tearDown():tearDown()方法用于测试用例执行之后的善后工作、关 闭浏览器。
断言方法:在执行测试用例的过程中,最终用例是否执行通过,是通 过判断测试得到的实际结果和预期结果是否相等决定的。
assertEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,相等则测试用例通 过。
assertNotEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,不相等则测试 用例通过。
assertTrue(x,[msg='测试失败时打印的信息']):断言x是否True,是True则测试用例通过。
addTest(): 方法是将测试用例添加到测试套件中。

run(): 方法是运行测试套件的测试用例,入参为suite测试套件

13、HTML报告介绍

HTMLTestRunner是Python的标准库unittest单元测试框架的一个扩 展,用于生成HTML测试报告
下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html

 

14、HTML测试结果

HTMLTestRunner.py下载地址http://tungwaiyip.info/software/HTMLTestRunner.html
HTMLTestRunner.py的存放路径,是放在C:\Users\Administrator\AppData\Local\Programs\Python37\Lib
HTMLTestRunner.py是基于python2*开发的,要想能够在python3上使用,需要修改该文件。
修改汇总: 
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode('latin-1')修改成uo = e
第772行,将ue = e.decode('latin-1')修改成ue = e
第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

基于test_suite文件进行HTML报告生成,存放到D盘名为result.html

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SQL Server Management】使用手册

目录 ⛳️【SQL Server Management】 ⛳️1. 启动登录 ⛳️2. 忘记密码 ⛳️3. 操作数据库和表 3.1 新建数据库text 3.2 新建表 3.3 编辑表 3.4 编写脚本 ⛳️【SQL Server Management】 ⛳️1. 启动登录 需要开启服务 ⛳️2. 忘记密码 登录windows--> 安全性 -->…

mycat快速搭建

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改 mycat快速搭建 在主从数据库集群架构中,让主库负责处理写入操作,而从库只负责处理select查询&am…

振南技术干货集:FFT 你知道?那数字相敏检波 DPSD 呢?(1)

注解目录 1 、DPSD 的基础知识 1.1 应用模型 1.2 原理推导 1.3 硬件 PSD (相敏检波,就是从繁乱复杂的信号中将我们关心的信号检出来,同时对相位敏感。 数学原理,逃不掉的,硬着头皮看吧。) 2 、DPSD …

坚鹏:基于招商银行案例研究的银行APP运营成功之道培训圆满结束

中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点,服务个人客户超6.5亿户。2022年,在《银行家》…

Linux(10):Shell scripts

什么是 Shell scripts shell script(程序化脚本):shell 部分是一个文字接口下让我们与系统沟通的一个工具接口;script 是脚本的意思,shell script 就是针对 shell 写的脚本。 shell script 是利用 shell 的功能所写的…

【ONE·Linux || 网络基础(四)】

总言 主要内容:传输层UDP、TCP协议基本介绍。UDP报文格式、TCP报文格式、三次握手四次挥手、TCP可靠性策略说明。 文章目录 总言8、UDP协议(传输层一)8.1、传输层预备知识8.1.1、端口号8.1.2、一些指令(netstat、pidof、xargs&am…

UE4/UE5 雾

雾 UE4/UE5 雾平面雾材质效果图: 3D雾区材质效果图: UE4/UE5 雾 平面雾 做好将材质放在Plane上就行 材质 效果图: 3D雾区 做好将材质放在3D模型上就行 材质 效果图:

智能优化算法应用:基于蜉蝣算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蜉蝣算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蜉蝣算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜉蝣算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Android问题笔记四十九:ViewPager 嵌套 Fragment 扩大滑动响应区域,避免左右滑动过于灵敏问题

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

minio分布式存储系统

目录 拉取docker镜像 minio所需要的依赖 文件存放的位置 手动上传文件到minio中 工具类上传 yml配置 config类 service类 启动类 测试类 图片 视频 删除minio服务器的文件 下载minio服务器的文件 拉取docker镜像 拉取稳定版本:docker pull minio/minio:RELEASE.20…

00TDI 这件红色大衣也太适合过年穿了

分享女儿的时尚穿搭—红色大衣 这款大衣非常厚实 摸起来很软糯的触感 复合了660-700g绵羊绒 厚实度堪比一件厚实的羽绒服 门禁处做了立体的爱心装饰 精致又可爱!!!

数据结构 | 排序

插入排序 直接插入排序(空间复杂度为1,排序后稳定) 思路: 在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入&…

面对Spring 不支持java8的改变方法

接下来,就只有17与21了,JDK开发人员每隔半年,发布一个新的版本,但是新版本也只是维护一段时间(一年/半年)业务越小,升级越简单 1.如何创建Spring Boot项目,阿里云上去下载代码,然后使…

[激光器原理与应用-15]:声光调制器(AOM:Acousto-optic modulator)

目录 第1章 概述 1.1 什么是AOM 1.2 AOM的主要参数 第2章 主要工作原理 2.1 光的调制技术 2.2 直接调制与间接调制 2.3 声光调制 2.4 声光调制工作原理 第3章 声光调制器件 3.1 声光调制器件的类型 3.2 应用 3.3 主要厂家 第4章 声光调制器系统 4.1 系统组成 …

自动化测试误区

数据驱动怎么玩? 数据驱动:因为数据的改变导致结果的改变。说人话就是,因为我在百度里搜索的是“selenium”导致结果就是包含了“seleniumhq.org”。因为我登录时候输入的是“zhangsan”导致的结果就是登录之后页面右上角显示“欢迎,zhangs…

关于为什么要替代aspera,有哪些aspera替代方案

Aspera是一种广泛使用的文件传输协议,其主要优势在于快速和安全地传输大型文件。然而,在某些情况下,Aspera的价格和性能可能不够优惠,而且需要购买额外的许可证和硬件。另外,一些用户可能也担心 Aspera 的安全性问题&a…

QT Day01 qt概述,创建项目,窗口属性,按钮,信号与槽

1.qt概述 1.什么是qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。它为应用程序开发者提供建立艺 术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组 件编程。 2.支持的平台 Windows – XP 、 Vista 、 Win7 、 Win8…

零基础编程入门视频教程,零基础编程从哪学起,分享中文编程工具构件实例

零基础编程入门视频教程,零基础编程从哪学起,分享中文编程工具构件实例 1、零基础编程入门视频教程,系统化编程教程链接 https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 2、零基础编程从哪学起 建议初学…

C语言:求Sn=a+aa+aaa+aaaa+……(n个a)之值,其中a表示一个数字,n表示a的位数,n由键盘录入。

分析: 在主函数 main 中,程序首先定义四个整型变量 a、n、i 和 sn,并初始化 a、n 和 i 的值,其中 sn 用于记录数列的和。然后使用 scanf 函数从标准输入中读取用户输入的两个整数 a 和 n。 接下来,程序通过 while …

【JavaScript框架】2024年需要学习的顶级JavaScript框架:Blitz、SolidJS、Svelte等

如今,Web开发人员面临两大问题。 第一个是如何自动化繁琐的web开发工作。要为标准web应用程序设置一个项目,您必须花费宝贵的时间学习用于常见任务的几个库,如身份验证和数据库处理,并将它们捆绑在一起。第二个问题是如何使网络应…