如何理解 selenium-WebDriver

Posted 软件测试大师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解 selenium-WebDriver相关的知识,希望对你有一定的参考价值。


  selenium 的 projects 包含如下几个方面:

  1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDriver 1. Selenium IDE 作为 Firefox 上的一个插件,提供录制功能,个人观点,如果能手写代码,就不要用这个东西。

  2. Selenium Remote Control 是一个客户端/服务器系统,可以在本地或在其他电脑上控制 Web浏览器,使用几乎任何编程语言和测试框架。

  3. Selenium Grid 可以远程的控制到并在多个服务器上同时运行测试

  4. Selenium WebDriver 可以在本地或远程计算机上的驱动浏览器


  简单的了解了 selenium 之后,看看到底 selenium 哪里适合你? 1. 如果你想做一个强健的、基于浏览器的回归测试2.多环境下分发和扩展可运行的脚本

  这时候就可以选择 selenium webdriver, 你可以使用多种脚本语言来驱动浏览器,目前,Selenium WebDriver 已经正式弃用 Selenium Remote Control,而 Selenium Server 内置了网格功能。

  Selenium WebDriver 的优点:它将 Webdriver 的 API 融入了进来,让 selenium 有进一步的增强。Webdriver 是一套面向对象的 API。相比 selenium1 而言,Selenium WebDriver 能够进行更有效的功能测试的覆盖,比如文件上传、下载,弹出窗和对话框的问题,同时也克服了 webdriverSelenium RC 的单主机同源策略的限制的问题。


  如果你使用 Java 语言来调用 selenium WebDriver,那么下面这些接口一定都应该熟悉一下:

  androidDriver,ChromeDriver,EventFiringWebDriver,FirefoxDriver,htmlUnitDriver,InternetExplorerDriver,PhantomJSDriver,RemoteWebDriver,SafariDriver

  最常用的就应该是 FirefoxDriver,扩展一下就应该是 InternetExploreDriver 和 ChromeDriver 和 SafairyDriver.

  如果你想进行一个扩展 EventFiringWebDriver 也是必不可少的。


  吹吹的说起来selenium WebDriver 不过是一个自动化测试工具罢了,优点就是开源易用,支持多种语言,多种浏览器,对于 selenium WebDriver 的使用来说,无非是在了解其基本操作的 API 之后,将业务逻辑和功能测试执行流程转换为计算机可读的代码,来代替我们进行复杂重复的人工测试。我们之所以使用它,无非是它能够帮助我们完成任务,达到实际的工作目标。这是从使用者或者说一个程序员的角度来讲,只要熟读 API,能够准确的分析页面的 DOM,遇到不同的问题,都能想出实际的解决方案,我觉得这作为一个自动化工程师已经很优秀了。如果说这时候你非要做一个平台,能够实现各种功能,要有良好的架构,良好的延展性,稳定性,叫什么软件测试架构师在做的事情,然后非要把那些手动测试的人也拉入到自动化的 team 中来,然后人家不想学你这个自动化,因为没有编码基础,学起来很费劲,这时候你就说要做一个万能的平台,不需要手动测试去学写代码也能进行自动化测试。。。等等一丢丢的理由吧。。。这时候我想提一个问题,为什么自动化测试现在这么火,但是每个公司或者说每一个 team 都必须要有手动测试人员呢???答案是很唯一的,因为任何人也取缔不了手动测试人员的角色,既然存在了就肯定有存在的道理。平台固然要作,个人对自动化测试平台的理解是,没有万能的平台,只有适合你自己业务需求的平台,你想用这些功能,你添加进去就好了,对于一个系统的生命周期,我不去评论,因为经验还没到那么多,但是我想说,国内外真的有多少系统能用到 7 年以上呢?一个系统能做到百年不倒?是不是架构师这个职位就不需要招人填补空缺了呢?或者说,只需要这些架构师整天看着程序员们写代码就可以了呢?腾讯算是国内比较大的互联网公司了,拿腾讯 QQ 来说,这短短 10 几年,QQ似乎也做了 4 次较大版本的改动吧,尤其是第四次的重新架构,可谓是大换血吧,平均算下来,万能的平台靠谱吗?


  话说回来,无论使用哪种工具,解决问题才是关键,企业不同于学校,不管你使用了什么样的方法,你能把问题解决掉,那么你就是成功的。最最重要的是看人们给自己的定位,我就见过那种就喜欢做手动测试的人,代码框架你放那,让他配置个参数直接跑就 OK 了,他会觉得你这个好麻烦,搞不懂,还是我自己点点吧。所以这个东西强求不得。对于自动化工程师的职业发展,也同样看自己的规划了,你可以选择做一名精通于某一个工具或者技术的工程师,你也可以选择做一个名气十足的架构师,这完全看个人的爱好,其实再好的架构,上面的代码还是需要工程师来写的,我还是那句话,各有各的价值,没有高低之分。


点击阅读全文,报名参加自动化测试沙龙


以上是关于如何理解 selenium-WebDriver的主要内容,如果未能解决你的问题,请参考以下文章

如何理解FFT

如何理解工作,如何理解事业

如何理解Spring Boot中的Starter?

如何理解 CGI,WSGI

集群与分布式 如何理解(自己的理解)

JavaScript中的ArrayBuffer该如何理解呢?