Web应用软件的功能测试工具有很多种,但它们最根本的差异在于:某些工具可以驱动一个或多个真正的浏览器以便得到完全真实的环境,比如Selenium,而另一些工具只是模拟Web浏览器的操作,比如Canoo WebTest。Marc Guillemot将这两种工具进行了对比,根据他的观点,WebTest以13:5的比分获胜。

Marc就以下方面内容对这两种工具进行了对比和评分:

Canoo WebTestSeleniumTied

ReportsBrowser FidelityTesting Ajax

SpeedBeginner Friendly

Integration into Development ProcessSupport for Badly Formatted HTML Code

ScalabilityMulti-Language Support

Capture JS Errors

Documentation

Predictable Behaviour

XPath Support

Extensibility

Data-Driven Tests

Internationalization Support

Support for Non-HTML Content

Marc认为,这些测试不够快,但“WetTest 的工作不多,所有测试都运行在JVM上”。他也提到Selenium无法捕获Javascript错误导致的测试失败:

只要你的单元测试通过了,你就不在意编辑错误了吗?肯定不是!但事实上,Selenium就是这样的,因为它不能检测到你的应用程序中的javascript错误(除非这些测试直接导致测试失败)。

另外,他也提到Ajax 测试(一般来说,大家都认为这是浏览器模拟器的弱点)是一种纽带:

与一般的想法相反,你并不需要在浏览器中运行你的JavaScript测试来测试AJAX功能。HtmlUnit和WebTest可以完成这样的工作,甚至可以称为完全胜任这样的工作,因为它允许更好地测试页内请求,使不可预知的浏览器行为成为可预知的(参见我前一个帖子)。

另一方面,他相信Selenium可以支持多种语言,“Selenium RC可以与不同的开发语言(Java、Ruby、PHP等等)结合,而WebTest只能与Ant结合使用”,还支持不规范的Html以及真实的浏览器:

HtmlUnit对JavaScript支持已经大幅改善,但还不能(且永远不可能)与真正的浏览器行为一模一样。尽管Selenium也更改了一些Web应用的JavaScript正常执行,但它使用真正的浏览器工作,所以已经和浏览器的标准行为相当接近啦。

作为Canoo WebTest和HtmlUnit的首席开发人员,Marc明显倾向于他所接纳的这种形式的工具,在与他讨论之前,请一定要先读一下他的分析报告:

显然,作为WebTest(和HtmlUnit)的负责人,我的确是有倾向性的。但是,我也有多年开发和维护庞大的功能测试套件的经验。客观一点儿说,我可能在其它方向上过分担心了,应该相信Selenium。当然,我将不断地修正我在Selenium理解上的错误。但请您在开始批评我之前,一定要读一下这篇文章。

已经总结了这些反馈。Vitaly认为,WebTest和Selenium的关系可以看作是苹果和桔子的关系。“Selenium,WebTest(HttpUnit),DBUnit,JUnit和其它测试工具是互补的。有些事用这个工具可能完成,用另外一个工具却不成。”还有些人讨论了录制回放和脚本测试各自的优点,以及测试可维护性。Murali推荐使用PragmaticQA Element。

Christian反驳了WebTest对Ajax支持的说法,并提及在他的应用中,“由于HtmlUnit不能解析Dojo的import子句,即使最简单的页面也会抛出异常。”

而Simon认为,对浏览器保真度最重要的一点就是:

象WebTest这样的工具有点太理论化了,它想证明代码完全正常工作,但是只能在理想环境下,与生产环境相去甚远。真正的用户使用的是IE或Firefox,而Selenium可以让我们在“真实的”条件下做测试,例如有内存泄漏问题的脆弱的浏览器,和不符合标准的代码。

没有客户使用WebTest使用的引擎,这意味着尽管我们知道它在某种环境上运行得很好,但并不意味着真的没有麻烦。相反,我们的Selenium测试运行在Firefox之上,也运行在IE之上,所以它会捕获跨平台使用中发生的很多问题。

最后,Kent Tong设想了结合两种方法的途径:

是否可以开发这样一种中间层,即大家只写一套测试,即可以运行在WebTest上,又可以运行在Selenium之上?这样,大家就可以得到WebTest和Selenium各自带来的好处了。

java测试模拟网页点击,WebTest比拼Selenium:模拟和真实浏览器上的测试相关推荐

  1. node.js如何模拟网页点击?

    可以使用 Node.js 和一个第三方库,如 Puppeteer,来模拟网页点击.Puppeteer 是一个 Node.js 库,它提供了一个高级 API,用于控制 Chrome 或 Chromium ...

  2. 模拟网页点击爬虫交管12123违章数据!违章信息及时处理!

    本次介绍怎么以模拟点击方式进入交管12123爬取车辆违章数据,本文直接讲解过程,使用的命令解释见上一篇文章.本文同<Python教程-模拟网页点击爬虫定位系统>同样为企业中实际的爬虫案例, ...

  3. java测试模拟网页点击,httpunit爬虫模拟搜索详解与实战

    一.WEB测试工具介绍 httpunit是一个可以模拟浏览器的集成工具,它可以让你在不需要浏览器的情况下模拟浏览器的浏览行为,该工具是junit测试工具下面的一个子框架,主要用来做web端测试使用,它 ...

  4. python模拟网页点击_python模拟点击

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python怎么模拟点击网页按钮前提环境:python3 和 visual st ...

  5. python模拟网页点击_python怎么模拟点击网页按钮

    python怎么模拟点击网页按钮 前提环境: Python3 和 Visual Studio Code安装完毕 . 安装selenium : 在终端输入: pip install selenium, ...

  6. php如何模拟网页点击按钮,python模拟点击网页按钮如何实现 python模拟点击网页按钮实现方法...

    python模拟点击网页按钮如何实现 python模拟点击网页按钮实现方法 本篇文章小编给大家分享一下python模拟点击网页按钮实现方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们 ...

  7. python模拟网页点击ie浏览器_Python cPAMIE 模拟IE浏览器

    PAMIE 是一个很有意思的模块.它是一个实现IE自动化的模块.在此之前我使用过ClientCookie这个模块,它可以使用urllib2来通过程序访问页面,并且很适合在需要cookie支持的环境中. ...

  8. vba模拟鼠标点击_鼠标键盘模拟大师下载_鼠标键盘模拟大师免费版官方下载6.2...

    鼠标键盘模拟大师是目前国内唯一一款将鼠标自动点击.键盘自动输入.网页自动刷新和自动切换IP地址等功能完美结合与一体的鼠标键盘动作模拟软件,可以实现桌面及游戏的自动点击和按键点击等功能,有需要的小伙伴快 ...

  9. java 模拟点击按钮_HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索)

    HttpUnit模拟按钮点击以及爬虫实现(模拟百度搜索) HttpUnit 本质上相当于一个后台的透明的浏览器引擎,使用java中的HttpUnit可以实现模拟点击按钮,抓取网页元素,实现动态爬虫,之 ...

最新文章

  1. UVA12003 Array Transformer(数组分块)
  2. php注册表唯一电脑,PHP常见设计模式之注册表模式
  3. iOS流媒体直播整个框架介绍(HLS、RTSP)
  4. 学院-读书:影响世界的100本书
  5. java 避免大量if else_利用java的反射避免 多个 if else if else if else if
  6. [Flink]Flink 的物理分区器
  7. Android多媒体:AudioTrack
  8. java获取数据库列的别名_java – JDBC ResultSet获取具有表别名的列
  9. 视频教程-通俗易懂的RPC框架Dubbo视频教程-Java
  10. 关于stm32单片机的通讯方式
  11. Cisco Packet Tracer 子网划分实验
  12. 梦三国测试服显示连接服务器失败,我的登陆进去以后说与服务器失去连接怎么回事...
  13. 【玩转微信公众平台之中的一个】序章(纯粹扯淡)
  14. matplotlib绘制随机漫步
  15. 基于PCIe的通用信号处理板PCIe-KU040-FMC
  16. 您需要Administrators提供的权限才能对此文件进行更改
  17. 【逍遥模拟器】注册微信提示环境异常怎么解决?
  18. 2021十大亚洲现货黄金交易APP平台排名榜单
  19. 面试:CAS算法原理
  20. 如何在网站上增加Google analytics,手把手操作

热门文章

  1. 使用CityEngine制作cim2
  2. SSM框架与SSH框架
  3. Rendever把VR带到了老年社区,为老年人打开了通向精彩世界的一扇窗口
  4. 技术解析韵达快递,支撑业务生命线高效流转的底层逻辑
  5. facenet识别准确率_facenet 进行人脸识别测试
  6. 尾气排放系统的总体设计
  7. elementUI tree回显值
  8. Ai-WB2系列模组linux开发环境搭建
  9. 运维思索:运维管理与运维自动化
  10. 天玑820相当于骁龙什么处理器 天玑820和骁龙765g哪个好