JsUnit和Selenium介绍

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。

你可能感兴趣的:(JavaScript,浏览器,JUnit,单元测试,Ruby)