home > OMD > TEST >

web自动化测试(2):选择selenium优势?与PhantomJS/QTP/Monkey对比

Author:zhoulujun Date:

Android有monkey左压测,也可以编写脚本左UI交互测试。PhantomJS可以用用于页面自动化、网络监测、网页截屏,但无界面测试。selenium 是一套完整的web应用程序测试系统,包含了兼容性测试、测试的录制……web自动化测试,selenium

上篇 《web自动化测试(1):再谈UI发展史与UI、功能自动化测试》,自动化测试工具众多,

PC端常用的功能自动化测试工具

  • Selenium:开源工具集,用于回归功能测试或者系统用例说明,也可浏览器的兼容性。支持JavaScript、java、C等主流语言

  • Monkey:安装自带的UI测试工具,主要用来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。monkey命令

  • Loadrunner:商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试。java编写测试用例

  • QTP(=》UFT):商业收费软件,支持web,桌面自动化测试。主要是用于回归测试和测试同一软件的新版本,支持VBScript

  • WinRunner

  • QARun

  • Robot

为什么选择selenium做讲解呢?

什么是selenium

selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE7+,Firefox,Safari,Chrome,Opera等。

selenium主要功能

  • 测试与浏览器的兼容性:测试应用程序能否兼容工作在不同浏览器和操作系统之上。

  • 测试系统功能:录制用例自动生成测试脚本,检验软件功能和用户需求,用于回归功能测试或者系统用例说明。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

与其他打交道的测试工具对比

Monkey

Monkey是Android自带的一套命令行自动化测试小工具,使用 Java 语言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;

monkey执行示意图

monkey测试

Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲。通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭),从而对设备上的程序进行压力测试,检测程序多久的时间会发生异常

2222.png

monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法(如测试app 是否会Crash)。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法(如测试app 是否会Crash)。app release版本(发布)前,Monkey跑出来的结果中crash要为0,final release前,Monkey跑完的总次数应为25W,结果里不允许有nullPointException出现。

Android monkey命令只针对Activity做测试,不能对Service做测试。

对于前端H5测试,我们可以编写相应的monkey脚本,完成基本的UI交互测试

关于monkey 推荐阅读《Android压力测试:monkey测试命令详解与案例演示

PhantomJS

PhantomJS可以用用于页面自动化、网络监测、网页截屏,以及无界面测试。PhantomJS是一个而基于WebKit的服务端JavaScript API,支持Web而不需要浏览器支持,其快速、原生支持各种Web标准:Dom处理,CSS选择器,JSON等等。

QPT

QTP是Quick Test Professional的简称,是HP公司的产品。

QTP是一个侧重于功能回归的自动化测试工具。使用QTP的目的是想用它来执行重复的自动化测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试哪些功能、操作步骤、输入数据和期望的输出数据等。

--SeleniumQTP/UFT
是否付费开源免费商用付费,成本涉及许可证。
IDE没有IDE有IDE
操作系统各种操作系统只支持Windows。
应用类型Web,不支持处理Windows控件Web、Java、.Net、ActiveX、VB、Oracle、PowerBuilder...支持操作Windows控件等
支持录制支持录制,支持所有浏览器支持录制,上手容易,能够快速实现自动化,录制回放成功率高。
测试类型UI自动化、接口自动化UI自动化
开发语言Java、Python、Ruby、Perl、C#、PHP、HTML...VBScript
浏览器Internet Explorer、Firefox、Chrome、Edge、Safari、Opera...移动设备驱动等Firefox,Internet Explorer和Chrome的特定版本。
浏览器功能不能在浏览器中访问控制。只支持部分IE对话框???可以在浏览器中访问控制,如收藏夹栏,后退和前进按钮。支持各种IE对话框。
脚本运行脚本作用于HTML的DOM(文档对象模型),重点是脚本执行的进度。脚本作用于浏览器(模拟用户操作),执行中需要焦点。
参数设置必须依赖于编程语言,数据驱动要用编程实现。参数是内置的,数据驱动支持灵活。
多线程可以并联使用Selenium网格运行测试。不能并行执行测试,但将QTP整合到QC允许测试并行执行。
分布式支持分布式运行脚本仅支持远程平台运行脚本
第三方扩展灵活轻巧,支持第三方扩展,公开DOM各种技术。功能成熟且强大,但有限的附加组件和需要附加组件的技术。
恢复方案任何功能部件,例如对象存储库/恢复方案QTP已经内置恢复方案。
测试报告没有默认生成测试报告。默认的测试结果生成工具中。
移动测试支持移动设备。支持第三方工具的移动设备。
学习难易程度资料较少,官方论坛资料较多

UI对象的管理和存储:QTP的内置了良好的支持。Selenium可以通过用户扩展UI-Element来管理???,不过要在代码中写死,不像QTP一样可以自动录制添加。

selenium的优势

官网:https://selenium.dev/ 推介:Open source record and playback test automation for the web 

selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)

  • 终端用户的角度来测试应用程序

    通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。

  • selenium可以模拟真实浏览器,自动化测试工具

    Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。爬虫中主要用来解决JavaScript渲染问题。

  • 支持语言多:C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试

概况为:Selenium是一款可以录制用户操作,帮助 Web 测试人员简化重复劳动的开源软件。

反正,selenium真香!

Selenium 实现原理

Selenium1 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行。如下图所示:

image003.jpg


之所以引入这个代理 Remote Control Server 是因为“同源策略”的限制,通过这个代理服务器来“欺骗”远程 Server,达到使其以为是从同一个地方 load 代码以正确返回请求数据的效果。

流程说明:

  1. 客户端建立与 selenium-RC server 的连接。

  2. Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码

  3. 将 Selenese 代码传到客户端的 Selenium-Core 中。

  4. Selenium-Core 翻译并解析执行用户录制的操作。

  5. 让代理 Server 进行通讯

  6. Remote Control Server 负责跟远程 Web 应用服务器进行通讯。

  7. 操作完成,显示结果,并执行下一指令。

以上就是 Selenium Remote Control 的执行原理,接下来的章节中将一步步以图例加说明的方式快速说明如何使用 Selenium 来录制脚本,导入 Java 工程,然后定期维护工程。

下篇终于回到重点,selenium 的使用实战 《web自动化测试(3):selenium web测试用例与常用API简介


使用 Selenium 实现基于 Web 的自动化测试 https://www.ibm.com/developerworks/cn/web/1209_caimin_seleniumweb/index.html参考文章:

Android Monkey压力测试使用 https://www.jianshu.com/p/c8844327f5e9

Android Monkey的使用 https://blog.csdn.net/zhaoyanjun6/article/details/71750907

Selenium与QTP的比较 https://www.jianshu.com/p/593736bd44b3





转载本站文章《web自动化测试(2):选择selenium优势?与PhantomJS/QTP/Monkey对比》,
请注明出处:https://www.zhoulujun.cn/html/Operation/test/2017_0518_8312.html