前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦
文章目录
🐳 软件自动化测试工具的历史🐳 自动化测试工具的演进🐳 自动化测试发展思路🐳 选择 Selenium 的原因今天来跟大家聊一聊软件自动化测试工具的历史演进,一起来探讨一下现在的自动化架构应该怎样去设计和实现。
🐳 软件自动化测试工具的历史
见下图:
如图中显示,其实软件测试最早可以追溯到 1958 年的漂亮国第一个载人航天计划-水星计划,当时在这个计划当中首次出现了软件测试团队
,当然了这也仅仅是软件测试的萌芽;
到了 1975 年,现如今软件行业的超级巨头微软
诞生了,从这个时候开始漂亮国的软件行业一骑绝尘。随着软件行业得到了空前的发展,软件的规模也越来越大,复杂度也越来越高,随之而来的软件质量也越来越被人们重视了起来,由此软件测试的理论逐渐的得到了积累;
1979 年Glenford J. Myers
等三人出版了第一本软件测试的著作 -《软件测试的艺术》
,这本书最大的贡献就是给出了软件测试的定义(即以发现软件错误为目标而运行程序的一个过程),到了这里软件测试这一行业才算得上是开宗立派成为一个软件行业的正式的专属职业。随着软件测试的蓬勃发展,也就有了一定的江湖地位,同时也为软件的自动化测试提供了一定的土壤,自然而然的软件测试的先驱者就想到了如何让程序去测试程序;
于是到了 1985 年,第一款自动化测试工具AutoTester
诞生了(那个时候还是 DOS 系统)。从这之后,自动化测试工具得到了快速的发展阶段,先后有很多工具的诞生;
年Selenium 1.0
问世,算是进入了一个新的阶段,这一阶段也被叫做编码自动化
阶段。所以呢,在这里,软件测试史共分为5个阶段。
🐳 自动化测试工具的演进
见下图:
在 AutoTester 这款不可考量的自动化测试工具诞生后的不久,在 1989 年 一个叫Mercury
的公司在加利福尼亚州成立,同年该公司发布了一款至今依然有名的工具叫 LoadRuner (该公司现在已经被HP-惠普收购了,所以我们现在使用 LoadRunner都带有 HP 的Logo),一直到现在 该软件依然是举足轻重的性能测试神器,可提供优质的性能解决方案。
时隔六年,到了 1995 年Mercury
发布了另一款重磅产品WinRunner
(当时该公司还没有被惠普收购),该工具是现在UI自动化测试的鼻祖,它在当时实现并支持了录制、回放的功能自动化测试工具。
三年之后, 1998 年Mercury
又推出了另外一款工具QTP
,这一款专业的快速测试工具,随后QTP
就变成了主流的测试工具。随着时间的推移,软件开发模型就逐渐的由瀑布式主导转变为敏捷开发模型,现在的这些阿里、京东、华为、腾讯...有一个算一个
这样的公司更是全流程开展的敏捷开发模式,直到今天。由此也带来了软件行业的大爆发,同时软件的变更速度也在不断的加快。 一些传统的自动化测试工具就显得力不从心,很难应对软件开发的快速迭代和变更,导致一些公司开展自动化测试都是徒劳无功的。主要是因为 QTP 这款工具有问题、有风险、有缺陷,缺陷就是自动化测试用例的建立速度很慢,跟不上软件新增的内容。软件变更的频繁导致用例维护的成本巨大。并且这款工具的学习成本还很高,所以像这样一款非开源的工具逐步就被抛弃了。
到了 年,Selenium 这样一款开源的自动化方案诞生了!
年的时候,MIT(麻省理工实验室)搞了一个非常特殊的自动化测试工具SIKULI
,这一款基于图像识别的测试工具。现在的最新版本的QTP(现在不叫QTP了,而是叫UFT)也集成了这样类似的功能。就是根据你的截图来进行后续的操作,这样的图像识别对于我们的自动化测试其实是有一定的辅助作用。在一些特殊的场景下,还是用得到的。
🐳 自动化测试发展思路
从 1985 年算起,自动化测试至今已经40多年的发展历程。有的自动化软件为了适应时代的变化,也在不断的改变自我…
大体总结来说,自动化测试方式分为了如下几个阶段。
线性测试:(简单的录制回放) 基本操作:录制操作,产生线性脚本,对其回放进行自动化操作。优点:操作简单。缺点:数据、脚本混合在一起,几乎一个用例对应一个脚本,脚本维护成本高,重复使用率很低。 模块化和库的概念 基本操作:将测试分成不同的区域,把各个模块的测试操作、检查等过程封装为函数,形成 库文件被测试用例调用。优点:各个功能独立维护,能重用。缺点:操作和数据放在一起,一旦需要对大量不同的数据进行测试,需要编写大量的用于测试用例,编写的测试脚本也比较麻烦复杂。 数据驱动框架阶段 基本操作:脚本与数据彻底分离,数据存放在另外的文件单独维护。也就是把数据提取出来放到一个配置文件里,比如 excel、xml…优点:脚本与数据彻底分离。缺点:没有将测试对象和操作分离。 关键字驱动框架阶段 基本操作:将测试逻辑按关键字进行分解,形成数据文件与关键字对应的封装的业务逻辑。关键字主要包括3类:被测试对象(Object)、操作(Action)、值(Value)。优点:实现页面元素名称与测试内部对象分离、测试描述与具体实现细节分离。缺点:很难处理复杂业务。
以上就是自动化测试发展的一个思路,而后续章节的学习中,我们所使用的 WEB 自动化主要还是沿用了现在最流行的、最通用的底层框架 "Selenium"
。
🐳 选择 Selenium 的原因
完全开源免费使用灵活、简单后期用例易于维护(是否易于维护,取决于框架、自动化代码设计的是否足够好)支持多种语言(Java、Python、Ruby…)容易与单元测试框架无缝结合可支持多浏览器同时运行,支持远程启动其他服务器。可以自行编写高度的可复用代码代码自主可掌控,对于搭建框架、平台等有不可替代的又是。
针对 WEB自动化测试工具 的历史发展和 WEB自动化测试 的价值与选型就到这里吧,从下一小章节开始,将正式使用 “Selenium” 完成我们的 UI 自动化测试或者说 WEB 自动化测试。
如果觉得《〖Python WEB 自动化测试实战篇②〗- WEB自动化测试发展史与自动化工具选型》对你有帮助,请点赞、收藏,并留下你的观点哦!