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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

在这里插入图片描述

 

😏作者简介博主是一位测试管理者同时也是一名对外企业兼职讲师。
📡主页地址【Austin_zhai】
🙆目的与景愿旨在于能帮助更多的测试行业人员提升软硬技能分享行业相关最新信息。
💎声明博主日常工作较为繁忙文章会不定期更新各类行业或职场问题欢迎大家私信有空必回。

在这里插入图片描述

 
 

阅读目录

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。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6