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

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

 
 

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

 
 

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

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

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

 
 

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。
 

本文转自【Austin_zhai】的技术博文

本文链接:web自动化测试入门篇01——框架介绍_web自动化框架_Austin_zhai的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Web自动化测试学习框架是一种自动化测试的工具,可以用于测试Web应用程序。它基于不同的编程语言和测试库,提供了特定的API和方法,以简化自动化测试的编写和执行,使测试人员更容易开发和维护测试脚本。 常见的Web自动化测试框架包括Selenium、WebdriverIO、TestCafe、Protractor等。其中,Selenium是应用最广泛的Web自动化测试框架之一,同时也是开源的。它支持多种编程语言,包括Java、Python、C#、JavaScript等,可以用于不同的测试场景和需求。 WebdriverIO是一个基于Selenium的Web自动化测试框架,采用JavaScript编写。它提供了丰富的API和特性,可以实现更高效和可靠的测试。TestCafe则是一个跨平台的Web自动化测试框架,支持多种浏览器和操作系统,并且不需要安装插件或拓展即可运行。 Protractor则是一个基于AngularJS的Web自动化测试框架,专门用于测试AngularJS应用程序。它结合了Selenium和WebdriverIO的特点,具有自动等待、实时更新、E2E(端到端)测试等特性,可提高测试效率和精准度。 总之,选择和学习合适的Web自动化测试框架,对于保证测试质量、提高测试效率都有重要的作用。测试人员应根据自身的需求和技术背景,选择和掌握适合自己的框架,并不断提高测试技能和经验。 ### 回答2: Web自动化测试是一个相对较复杂的测试领域。为了降低测试人员的学习成本和测试时间,框架是必不可少的。框架是一套标准化的组件,它能够分别解决自动化测试中的不同问题,比如自动化测试脚本的设计、成本和维护。 目前使用最多的Web自动化测试框架是Selenium。Selenium是一个开源的自动化测试工具,可以在多种浏览器和操作系统中进行测试。Selenium不仅具有对DOM(文档对象模型)的支持,还可以对AJAX的对话框、文件上传、动画效果等技术进行处理。对于初学者来说,Selenium非常友好,因为它具有简单的API接口,可用于开发Web驱动程序,如Python、Java、Ruby和C#等。 另外,还有其他的自动化测试框架,如Katalon Studio和Cypress等。Katalon Studio基于Selenium和Appium领域专业知识,提供了一整套自动化测试解决方案,它具有易于使用、高可扩展性、功能丰富和可移植性等特点。Cypress是一个JavaScript端到端的测试框架,它具有快速反馈、真正实现与用户交互以及高度可靠的特点,这使它成为一个专业级别的工具。 总的来说,要选择一个自适应的自动化测试框架,需要考虑应用内核技术、可扩展性和易用性等方面的问题。而且,测试人员应了解当前和预期的业务规则,并将其纳入考虑范围。无论选择哪一个框架,基本的测试原则都是不变的:在测试之前,必须建立一个正确的测试模型,以确保测试脚本的准确性和稳定性。 ### 回答3: Web自动化测试是软件测试中的一个重要环节,主要是通过让计算机模拟用户的行为,对Web应用程序进行自动化测试。而学习Web自动化测试,通常要涉及许多不同的技术和工具,其中框架是必不可少的一部分。 Web自动化测试框架是开发者用来帮助编写和执行自动化测试的一种软件架构,其主要目的是为了帮助测试人员更加高效地编写、管理和执行测试用例。常见的Web自动化测试框架包括Selenium、Robot Framework、Cypress等。 其中Selenium是Web自动化测试界非常流行的框架之一,它支持多种编程语言,包括Java、Python、C#、Ruby等,且支持多种浏览器,包括Chrome、Firefox、IE等。Selenium提供了API,开发人员能够使用API自己编写测试脚本,或者利用第三方扩展来增强Selenium本身的功能。 Robot Framework是另一个常用的Web自动化测试框架,其特点是易于学习和使用。它采用关键字驱动的方式,可以将测试用例分为多个部分,每个部分由不同的关键字构成。 Cypress是一种新兴的Web自动化测试框架,它使用JavaScript编写测试脚本,支持Chrome和Firefox等主流浏览器。Cypress可以模拟用户的实际操作,包括点击、拖拽、输入等操作,其测试速度也比较快。 总之,学习Web自动化测试框架需要不断学习和实践,有了框架的支持,才能更加高效地进行自动化测试。同时,也要根据不同的项目需求和个人技能水平,选择最适合的框架进行应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值