JsUnit和Selenium介绍
JsUnit,JavaScript单元测试工具,类似JUnit的javascript脚本单元测试工具。下列表格比较jsUnit和JUnit。
JUnit
|
JsUnit
|
单元测试类继承
TestCase
|
需测试的
HTML
页面包含
jsUnitCore.js
|
测试方法
|
测试函数
|
基于
Test
类
|
基于
HTML
的测试页
|
TestSuites
|
基于
HTML
的测试集
|
多个测试运行工具
|
基于
HTML/JavaScript
的测试运行工具
|
setUp()
和
tearDown()
方法
|
setUp()
和
tearDown()
函数
|
在虚拟机中运行
|
在浏览器中运行
|
用
Java
编写
|
用
JavaScript
编写
|
Selenium
是一个开源的基于Web的测试工具,采用
JavaScript来管理整个测试过程,包括读入测试套件、执行测试和记录测试结果。它就是采用
JavaScript单元测试工具
JSUnit
(
http://www.edwardh.com/jsunit
/
)为核心,
模拟真实的用户操作,包括浏览页面、点击链接、输入文字、提交表单等等,并且能够对结果页面进行种种验证。也就是说,只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动运行的功能测试套件。
同时
Selenium还有如下好处:
he main advantage that Selenium has over the other tools I
mentioned is that it's cross-platform, cross-browser. The main
disadvantage is that it requires server-side instrumentation. The
syntax used by the Selenium JavaScript engine inside the browser is
called "Selenese". In Bret Pettichord's words from his blog
:
"You can also express Selenium tests in a programming language, taking advantage of language-specific drivers
that communicate in Selenese to the browser bot. Java and Ruby drivers
have been released, with dot-Net and Python drivers under development.
These drivers allow you to write tests in Java, Ruby, Python, C#, or
VB.net."
它的实现原理也很简单,Selenium核心是用javascript写的,它能和浏览器进行通信,把测试用例信息发送给浏览器执行,从而达到自动测试的目的。
而且看了一下源码,应该就是通过在一个页面的2个iframe中,控制iframe监控和控制另外一个ifame的请求和执行状况。这样一个较大的问题就是跨域的问题,如果跨域的话,那么可能控制就失效了。
Selenium 有几个不同的产品,如下:
(1)Selenium Core
Selenium Core是Selenium的核心,是由javascript代码和html文件组成的。它的作用就是把测试用例的数据发送给浏览器,根据返回结果判断功能是否实现。
单独使用Selenium Core,需要把Selenium Core包和web应用程序一起发布。
下载Selenium Core压缩文件,解压后得到一个文件夹。因为都是html和javascript的静态文件,所以直接把这个文件夹放到Web应用程序中就可以了。
如果是Rails程序,需要放到public目录下。
如果是J2EE程序,可以放到webContent的目录下,和其他Jsp,Js以及配置文件组织在一起。
做到这一步后,Selenium Core就集成到应用程序中了,下一步需要写测试用例。
Selenium Core解压后的文件夹中有一个tests目录,这个目录保存的是所有的测试用例。只要是自己写的测试用例,都应该放到这里面。
测试用例可有三种方式书写:
1. Command Line方式。
2. Html脚本文件方式
3. 程序方式。
在使用Selenium Core时,需要使用Html脚本文件方式编写用例。
(2)Selenium IDE
Selenium IDE提供了一个浏览器的插件,在浏览器的该插件模式下,可以定义测试用例,进行测试。
目前只提供了Firefox一种浏览器的插件。
如果使用Selenium IDE,不需要对Web应用程序做任何改动,测试用例也是在浏览器的UI界面下定义和录制。
(3)Selenium RC
Selenium RC允许用程序语言编写测试用例,比如Jave,Ruby等。这样做的好处是,可以把Selenium和其他测试框架,比如Junit集成,进行集成测试。
Selenium RC比其他包要大,主要包含了下面几部分:
a. Selenium核心。
b. Selenium Server运行时环境。
c. Selenium提供的针对各种语言的开发接口。
Selenium核心和Server运行时环境都放在selenium-server.jar中。Selenium RC提供的应用程序接口主要有下面几种语言,Java,Ruby,Php,Phthon,Perl,.Net。
分享到:
相关推荐
Selenium RC包括Selenium Core、Selenium Server和各种语言的类库。 4. Selenium Grid:扩展了Selenium的功能,提供了一个中心节点(hub)来管理和调度测试执行,可以在多台机器上并行运行测试,提高测试效率。 ...
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。 Selenium的核心Selenium Core基于JsUnit,完全由...
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。 Selenium的核心Selenium Core基于JsUnit,完全由...
- **jsunit**:可能是一个JavaScript单元测试框架,与Selenium配合使用,用于测试Web页面中的JavaScript代码。 - **tests**:这个目录可能包含了示例测试脚本或测试套件,展示如何使用Selenium进行测试。 - **META-...
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。 Selenium的核心Selenium Core基于JsUnit,完全由...
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。 Selenium的核心Selenium Core基于JsUnit,完全由...
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。 Selenium的核心Selenium Core基于JsUnit,完全由...
Selenium模拟浏览器简介,它的核心selenium core基于jsunit,完全由js编写,因此可以运行于所有支持js的浏览器上. 和一些案例
- **测试工具**:JsUnit和Selenium等工具用于自动化测试JavaScript程序的功能和性能。 #### 三、库与工具包 - **Java无关的工具包** - **Prototype**:这是一个流行的JavaScript库,提供了丰富的API来简化DOM操作...
- **测试工具**:JsUnit、Selenium等,用于自动化测试,确保Ajax功能的稳定性和可靠性。 ### 关键知识点三:Ajax模式与技巧 **知识点描述**:《Pro Ajax and Java》中提到了几种常用的Ajax模式和技术,如Fade ...
利用word调试javascript. 各种js框架都有log解决方案(我们知道log优于debug),还有selenium和jsunit保驾护航,如果你使用firefox,还可以用firebug插件监视js、css、XHR甚至直接观察网络上传输的http包,...