首页 > 其他分享 >【web自动化测试】入门篇 01—— 框架介绍

【web自动化测试】入门篇 01—— 框架介绍

时间:2023-09-07 21:22:11浏览次数:34  
标签:web 01 浏览器 框架 业务 入门篇 测试 自动化

一、目的

web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”,通常都会作为广大测试从业者的首选学习对象,相较于C/S架构的自动化来说,B/S有着其无法忽视的诸多优势,从行业发展趋、研发模式特点、测试工具支持,其整体的完整生态已经远远超过了C/S架构方面的测试价值。那么接下来我们就来具体说说web自动化测试的前世今生吧。

二、说明

此篇中所用的技术栈为Selenium+Python,因其本身编程难度不高,总体思想都是基于面向对象的编程理念,故只要大家的编码语言基础不弱,就完全可以做到平替。

三、手工测试与自动化测试的区别

在正式介绍web自动化测试之前,我们先来聊聊手工与自动化之前的一些区别与认知。很多科班或者刚踏上测试行业的同学都会有这么一个认知,自动化测试相较于手工来说技术含量更高,所属岗位的薪资更好,岗位的可替代性也更小。对于这种看法博主只能说一半一半,对于没有什么实际工作经验与实际项目经验的同学来说,即使自动化的技术含量更高,也尽量推荐大家从手工测试开始。大道理就不多说了,对大家来说最实际的就是你的核心竞争力,那对于测试来说测试的核心竞争力是什么呢?业务!一定是业务,但为什么会是业务呢?

大家设想一下,如果你的技术能力较强,但业务能力一般,即使能写出很高效的代码,但无法贴近产品或者项目的业务,纵使这样,写出来的脚本或者框架也会是无用之物。必须让其他懂业务的同事来帮你审核或者修改,但反过来如果业务理解力强并且对于产品的功能与设计拿捏的比较到位,那无论是测试用例设计或是经验测试都将无往不利,常常可以发现其他人无法察觉的一些产品问题、缺陷甚至于是设计场景上的漏洞。编码是一个硬技能,可以通过大量的练习来磨炼,而业务却不单单是需要理解,更多的情况下是需要去延伸与创新。为什么说测试应该是整个公司内对了解产品与项目的人呢,就是因为他们比任何人都了解其功能的使用,业务场景的匹配,需求的痛点所在,这个甚至需要超过产品经理的理解。所以在一家公司内决定一个测试能在他的道路上走多远的永远不会是技术,而是业务。

那两者的区别呢,基于上面所说的观点,要做好手工测试,必须满足这四点:1. 业务的理解能力 2. 思维逻辑能力 3. 沟通能力 4. 测试基础能力 , 做不好这四点我敢说你的手工测试能力一定不行。而要做好自动化,除了要做到这上面的四点之外,还需要对自己的代码能力、思维转变、框架设计等一些列的能力进行提升。由此可见,自动化与手工的区别不仅仅在于实现与执行的方式有所不同,两者更是一个循序递进的过程。所以博主还是建议大家如果要做自动化还是最好可以从手工业务测试进行切入。

四、框架选择

说到web的自动化测试框架,市面上已经有了很多成熟的测试框架了,比如QTP、selenium、AutoRunner、Robot Framework、watir、RFT等等等等。

QTP属于比较老牌的自动化测试框架了,在2012年之前使用的团队与公司还是比较多的,脚本也是比较简单易懂的,但另一面的限制也比较大,语言只能支持VBS且费用较高,框架的对象支持灵活度也不够好。

selenium目前仍为最主流的web自动化测试框架之一,免费开源、支持跨平台,关键是测试执行可以在浏览器中直接运行,模拟用户的真实操作。


AutoRunner可以支持丰富的技术框架并且使用Java作为脚本语言,支持生态比较完善,采用关键字提醒、关键字高亮、关键字驱动。支持同步点、校验点、参数化,同时支持数据驱动的参数化。比较适合用它来功能测试、回归测试、系统测试、构建测试等。


Robot Framework支持python,支持关键字驱动和数据驱动、自定义关键字,框架内的测试用例可以使用多种格式进行编写,且可以自动生成测试报告,无须像其他软件需要第三方库的支持。


watir使用ruby作为脚本语言,现在也可以支持跨平台的多个浏览器了,同样作为开源框架,watir相较于selenium就有比较多的限制与短板了,比如无法录制脚本、对js的弹框支持不太友好等。


RFT是由IBM推出,这是一款不仅仅用来做web自动化测试的框架,他也可以测试 HTML、Java、Windows、.NET、Visual Basic、Silverlight、Eclipse、Siebel、Flex、Ajax、Dojo、GEF 和 PowerBuilder 应用程序。但不是开源的,需要收费,并且支持的对象库也不多,如果是用来学习一下的话还是不错的。


那么在这些五花八门的框架中如何选择适合自己的测试框架呢?我们可以从两个点进行切入,首先评估自己的能力,擅长什么样的编码语言,甚至是是否有代码基础。针对上述框架的特性,比如没有代码能力的可以优先选择带有脚本录制功能的框架;又比如擅长java的就可以选择对java支持比较好的框架。另一个,就是评估自己的被测对象(产品或项目),被测对象是用什么样的技术栈实现的,页面的变更或迭代的频率与规模等。如果我们的选择标准基于以上的两个方面去进行评估的话,大概率是可以选择到适合自己适合项目或产品的自动化测试框架的。

5. Selenium的工作原理

在具体的描述Selenium的工作原理之前,我们这里先看一张简单的工作原理图:

图中的client其实就是我们使用python写的源代码,因为selenium是没有图形界面的,所以将客户端就看成我们用源代码实现的Selenium业务功能即可。

driver就是我们的webdriver,大家要知道,我们的源代码是无法直接指挥浏览器进行相应的操作的。我们的代码必须通过提供的API来建立起与浏览器之间的通信会话,有了这个会话之后脚本就可以驱动浏览器执行你测试所需的特定业务操作了。

browser作为浏览器,则是我们最后呈现出业务操作的界面对象,selenium的特点就是可以直接在浏览器中进行操作实现,模拟用户的真实业务动作。而浏览器在接收到代码所模拟的http请求之后会进行解析,将业务所需的特定操作(action)实现在浏览器界面中并对所发出的请求进行响应,告知到请求放操作是否成功。

概括的来说,整体的流程就是我们所写的代码脚本去调用selenium,再由selenium来调用特定的API对浏览器进行业务操作,浏览器将业务操作的结果告知到脚本或者IDE。

最后如果你想学习自动化测试,欢迎加入笔者的交流群:735745871,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!

标签:web,01,浏览器,框架,业务,入门篇,测试,自动化
From: https://www.cnblogs.com/hebendexiaomao/p/17686088.html

相关文章

  • 苍穹外卖-Day01
    苍穹外卖-Day011.项目整体介绍1.1项目定位项目的定位:专门为餐饮企业(餐厅,饭店)定制的一款软件产品。项目主要分为两个端:(1)管理端:外卖商家使用。(2)服务端:点餐用户使用。1.2项目的功能架构项目的功能架构:体现项目的业务功能模块1.......
  • 《Web安全基础》05. XSS · CSRF · SSRF · RCE
    @目录1:XSS1.1:简介1.2:防护与绕过1.2.1:HttpOnly1.2.2:WAF绕过1.3:相关资源2:CSRF3:SSRF4:RCE本系列侧重方法论,各工具只是实现目标的载体。命令与工具只做简单介绍,其使用另见《安全工具录》。靶场参考:XSS-Labs,pikachu,DVWS。1:XSS1.1:简介XSS(Cross-SiteScripting),跨站脚本攻击。......
  • Exchange 2016 服务器实战化操作-- 5. Exchange 就地电子数据展示和保留
    ==回顾:==上篇文章,我们成功实现了OWA和ECP的SSO单点登录配置,今天我们来看一下Exchangeserver2019的就地电子数据展示和保留,如果你的组织遵守与组织策略、合规性或诉讼相关的法律发现要求,ExchangeServer中的In-Place电子数据展示可以帮助你对邮箱中的相关内容执行发现搜索......
  • 网络错误码 10013 错误问题分析
    前言10013以一种访问权限不允许的方式做了一个访问套接字的尝试。 原因绑定一个处于CLOSE_WAIT状态的端口,会产生该错误重现先找到一个处于CLOSE_WAIT状态的端口49724C:\Users\admin>netstat-ano|findstrCLOSE_WAITTCP192.168.11.149:49724123.60.175.170:80CLO......
  • 《Web安全基础》04. 文件操作安全
    @目录1:文件操作安全2:文件上传漏洞2.1:简介2.2:防护与绕过2.3:WAF绕过2.3.1:数据溢出2.3.2:符号变异2.3.3:数据截断2.3.4:重复数据3:文件包含漏洞4:文件下载漏洞5:文件读取漏洞本系列侧重方法论,各工具只是实现目标的载体。命令与工具只做简单介绍,其使用另见《安全工具录》。靶场参考:u......
  • [SpringSecurity5.6.2源码分析四]:WebSecurityConfiguration
    WebSecurityConfiguration的重点是通过WebSecurity创建FilterChainProxy• 先分析内部的方法1、elegatingApplicationListener• 看名字就能看出来注册了一个委托类型的监听器publicclassWebSecurityConfigurationimplementsImportAware,BeanClassLoaderAware{............
  • 【TinyWebServer】02半同步半反应堆线程池
    本篇主要围绕服务器项目中涉及的知识进行介绍,详细可参考《Linux下高性能服务器编程》。服务器编程基本框架主要由I/O单元,逻辑单元和网络存储单元组成,其中每个单元之间通过请求队列进行通信,从而协同完成任务。I/O单元:用于处理客户端连接,读写网络数据;逻辑单元:用于处理业务逻辑的......
  • locust:Python 分布式压力测试(带WebUI)
    Locust介绍它采用纯Python实现,是一个分布式用户负载测试的工具。使用基于Requests库的客户端发起请求,使编写脚本大大简化;在模拟并发方面摒弃进程和线程,完全基于时间驱动,采用协程(gevent)提供的非阻塞IO和coroutine来实现网络层的并发请求。因此单台压力机也能产生数......
  • day24 - 回溯算法part01
    回溯算法理论基础 77. 组合classSolution{public:vector<vector<int>>result;vector<int>path;voiddfs(intn,intk,intstart){if(path.size()==k){result.push_back(path);return;}......
  • 亚马逊电热水壶认证加拿大CSA22.1和SOR/2016-181标准和要求
    近日,亚马逊平台发布公告,要求在加拿大站销售的所有电水壶必须有ISO17025实验室出具的符合CSA22.1和SOR/2016-181标准的认证证书。卖家们应尽快上传相关资料以避免产品被强制下架,截止日期为2023年10月30日。电水壶作为一种常见的小家电,受到了广大消费者的喜爱。然而,由于安全问题的日......