栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

〖Python WEB 自动化测试实战篇②〗- WEB自动化测试发展史与自动化工具选型

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

〖Python WEB 自动化测试实战篇②〗- WEB自动化测试发展史与自动化工具选型

点击下方图片有惊喜,精美礼品等你来拿哦


前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 哈士奇 ,一位致力于 TFS 赋能的博主 ✌
CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 
 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。
 如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦


专栏系列(点击解锁)学习路线指引知识定位
Python全栈白皮书 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 更新中
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录
    •  软件自动化测试工具的历史
    •  自动化测试工具的演进
    •  自动化测试发展思路
    •  选择 Selenium 的原因

今天来跟大家聊一聊软件自动化测试工具的历史演进,一起来探讨一下现在的自动化架构应该怎样去设计和实现。

 软件自动化测试工具的历史

见下图:


如图中显示,其实软件测试最早可以追溯到 1958 年的漂亮国第一个载人航天计划-水星计划,当时在这个计划当中首次出现了 软件测试团队 ,当然了这也仅仅是软件测试的萌芽;

到了 1975 年,现如今软件行业的超级巨头 微软 诞生了,从这个时候开始漂亮国的软件行业一骑绝尘。随着软件行业得到了空前的发展,软件的规模也越来越大,复杂度也越来越高,随之而来的软件质量也越来越被人们重视了起来,由此软件测试的理论逐渐的得到了积累;

1979 年 Glenford J. Myers 等三人出版了第一本 软件测试的著作 -《软件测试的艺术》 ,这本书最大的贡献就是给出了软件测试的定义(即以发现软件错误为目标而运行程序的一个过程),到了这里软件测试这一行业才算得上是开宗立派成为一个软件行业的正式的专属职业。随着软件测试的蓬勃发展,也就有了一定的江湖地位,同时也为软件的自动化测试提供了一定的土壤,自然而然的软件测试的先驱者就想到了如何让程序去测试程序;

于是到了 1985 年,第一款自动化测试工具 AutoTester 诞生了(那个时候还是 DOS 系统)。从这之后,自动化测试工具得到了快速的发展阶段,先后有很多工具的诞生;

2004 年 Selenium 1.0 问世,算是进入了一个新的阶段,这一阶段也被叫做编码自动化 阶段。所以呢,在这里,软件测试史共分为5个阶段。


 自动化测试工具的演进

见下图:



在 AutoTester 这款不可考量的自动化测试工具诞生后的不久,在 1989 年 一个叫 Mercury 的公司在加利福尼亚州成立,同年该公司发布了一款至今依然有名的工具叫 LoadRuner (该公司现在已经被HP-惠普收购了,所以我们现在使用 LoadRunner都带有 HP 的Logo),一直到现在 该软件依然是举足轻重的性能测试神器,可提供优质的性能解决方案。

时隔六年,到了 1995 年 Mercury 发布了另一款重磅产品 WinRunner (当时该公司还没有被惠普收购),该工具是现在UI自动化测试的鼻祖,它在当时实现并支持了录制、回放的功能自动化测试工具。

三年之后, 1998 年 Mercury 又推出了另外一款工具 QTP ,这一款专业的快速测试工具,随后 QTP 就变成了主流的测试工具。随着时间的推移,软件开发模型就逐渐的由瀑布式主导转变为敏捷开发模型,现在的这些 阿里、京东、华为、腾讯...有一个算一个 这样的公司更是全流程开展的敏捷开发模式,直到今天。由此也带来了软件行业的大爆发,同时软件的变更速度也在不断的加快。 一些传统的自动化测试工具就显得力不从心,很难应对软件开发的快速迭代和变更,导致一些公司开展自动化测试都是徒劳无功的。主要是因为 QTP 这款工具有问题、有风险、有缺陷,缺陷就是自动化测试用例的建立速度很慢,跟不上软件新增的内容。软件变更的频繁导致用例维护的成本巨大。并且这款工具的学习成本还很高,所以像这样一款非开源的工具逐步就被抛弃了。

到了 2004 年,Selenium 这样一款开源的自动化方案诞生了!

2009 年的时候,MIT(麻省理工实验室)搞了一个非常特殊的自动化测试工具 SIKULI ,这一款基于图像识别的测试工具。现在的最新版本的QTP(现在不叫QTP了,而是叫UFT)也集成了这样类似的功能。就是根据你的截图来进行后续的操作,这样的图像识别对于我们的自动化测试其实是有一定的辅助作用。在一些特殊的场景下,还是用得到的。

 自动化测试发展思路

从 1985 年算起,自动化测试至今已经40多年的发展历程。有的自动化软件为了适应时代的变化,也在不断的改变自我…

大体总结来说,自动化测试方式分为了如下几个阶段。

  • 线性测试:(简单的录制回放)
    • 基本操作:录制操作,产生线性脚本,对其回放进行自动化操作。
    • 优点:操作简单。
    • 缺点:数据、脚本混合在一起,几乎一个用例对应一个脚本,脚本维护成本高,重复使用率很低。

  • 模块化和库的概念
    • 基本操作:将测试分成不同的区域,把各个模块的测试操作、检查等过程封装为函数,形成 库文件被测试用例调用。
    • 优点:各个功能独立维护,能重用。
    • 缺点:操作和数据放在一起,一旦需要对大量不同的数据进行测试,需要编写大量的用于测试用例,编写的测试脚本也比较麻烦复杂。

  • 数据驱动框架阶段
    • 基本操作:脚本与数据彻底分离,数据存放在另外的文件单独维护。也就是把数据提取出来放到一个配置文件里,比如 excel、xml…
    • 优点:脚本与数据彻底分离。
    • 缺点:没有将测试对象和操作分离。

  • 关键字驱动框架阶段
    • 基本操作:将测试逻辑按关键字进行分解,形成数据文件与关键字对应的封装的业务逻辑。关键字主要包括3类:被测试对象(Object)、操作(Action)、值(Value)。
    • 优点:实现页面元素名称与测试内部对象分离、测试描述与具体实现细节分离。
    • 缺点:很难处理复杂业务。

以上就是自动化测试发展的一个思路,而后续章节的学习中,我们所使用的 WEB 自动化主要还是沿用了现在最流行的、最通用的底层框架 "Selenium"。

 选择 Selenium 的原因
  • 完全开源免费
  • 使用灵活、简单
  • 后期用例易于维护(是否易于维护,取决于框架、自动化代码设计的是否足够好)
  • 支持多种语言(Java、Python、Ruby…)
  • 容易与单元测试框架无缝结合
  • 可支持多浏览器同时运行,支持远程启动其他服务器。
  • 可以自行编写高度的可复用代码
  • 代码自主可掌控,对于搭建框架、平台等有不可替代的又是。

针对 WEB自动化测试工具 的历史发展和 WEB自动化测试 的价值与选型就到这里吧,从下一小章节开始,将正式使用 “Selenium” 完成我们的 UI 自动化测试或者说 WEB 自动化测试。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954738.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号