Selenium——测试工具Selenium

参考:http://www.51testing.com/zhuanti/selenium.html,http://www.cnblogs.com/fnng/p/3653793.htmljavascript

简介:

  Selenium是一个用于Web应用程序测试的工具,是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操做同样。、css

  • 支持的浏览器:IE、Mozilla Firefox、Mozilla Suite等。
  • 主要功能:
  • 测试与浏览器的兼容性——测试你的应用程序看是否可以很好得工做在不一样浏览器和操做系统之上。
  • 测试系统功能——建立衰退测试,检验软件功能和用户需求。
  • 支持自动录制动做和自动生成.Net、Java、Perl等不一样语言的测试脚本。

版本

  Selenium 如今存在2个版本,一个叫 selenium-core, 一个叫selenium-rc 。html

  • selenium-core 是使用HTML的方式来编写测试脚本,你也可使用 Selenium-IDE来录制脚本,可是目前Selenium-IDE只有 FireFox 版本。
  • selenium-rc 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。selenium-rc 支持的语言很是多,这里咱们着重关注java的方式。这里讲的也主要是 selenium-rc。

组成:

  selenium 不是简单的一个工具,而是由几个工具组成,每一个工具都有其特色和应用场景。前端

selenium 1.0java

   

IDE:录制(只能用于FF,而后转化成其余语言,使用RC去调用)python

Grid:并行程序的执行web

RC:程序编写及运行编程

Selenium Core:基于JsUnit,由JS编写,可运行于任何支持JS的浏览器。api

  • 1. selenium IDE

  selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操做的录制与回放功能。那么什么状况下用到它呢?快速的建立bug重现脚本,在测试人员的测试过程当中,发现了bug以后能够经过IDE将重现的步骤录制下来,以帮助开发人员更容易的重现bug。IDE录制的脚本能够转换成多种语言,从而帮助咱们快速的开发脚本,关于这个功能后而用到时再详细介绍。浏览器

  • 2. selenium Grid

  Selenium Grid是一种自动化的测试辅助工具,Grid经过利用现有的计算机基础设施,能加快Web-app的功能测试。利用Grid,能够很方便地同时在多台机器上和异构环境中并行运行多个测试事例。其特色为:

    • 并行执行
    • 经过一个主机统一控制用例在不一样环境、不一样浏览器下运行。
    • 灵活添加变更测试机
  • 3. selenium RC

  selenium RC 是selenium 家族的核心工具,selenium RC 支持多种不一样的语言编写自动化测试脚本,经过selenium RC 的服务器做为代理服务器去访问应用从而达到测试的目的。

  selenium RC 使用分为Client Libraries和selenium Server:

    • Client Libraries库主要主要用于编写测试脚本,用来控制selenium Server的库。
    • Selenium Server负责控制浏览器行为,总的来讲,Selenium Server主要包括3个部分:Launcher、Http Proxy、Core。其中Selenium Core是被Selenium Server嵌入到浏览器页面中的。其实Selenium Core就是一堆JS函数的集合,就是经过这些JS函数,咱们才能够实现用程序对浏览器进行操做。Launcher用于启动浏览器,把selnium Core加载到浏览器页面当中,并把浏览器的代理设置为Selenium Server 的Http Proxy。

 selenium 2.0

  搞清了selenium 1.0 的家族关系,selenium 2.0 是把WebDriver 加入到了这个家族中;简单用公式表示为:

selenium 2.0 = selenium 1.0 + WebDriver 

  须要强调的是,在selenium 2.0 中主推的是WebDriver ,WebDriver 是selenium RC 的替代品,由于 selenium 为了向下兼容性,因此selenium RC 并无完全抛弃,若是你使用selenium开发一个新自动化测试项目,强列推荐使用WebDriver 。那么selenium RC 与webdriver 主要有什么区别呢?

  • selenium RC 在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript 翻译器来翻译和执行selenese命令(selenese 是selenium命令集合)。
  • WebDriver经过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持建立更高级的测试,避免了JavaScript安全模型致使的限制。除了来自浏览器厂商的支持,WebDriver还利用操做系统级的调用模拟用户输入。

  若是是新项目直接学习webdriver 就OK了,RC是过期技术。

学习路线:

1. 具有的知识和技术:

  (1)selenium进行的自动化测试是基于ui层面的,因此html,css,javascript基本上是必不可少的,至于javascript,有不少的前端都使用javascript做为其脚本语言!不过javascript并不须要学得很深,只须要掌握一些基础的知识,而后在实践中碰到的时候再继续深学下去!

  (2)掌柜一门编程语言,好比java,C#,python,ruby!很明显,如果有开发语言的基础,则写脚本的时候也不会太费力,这也是一项基本功!目前,使用java仍是偏多的!另外也是因为selenium支持多种语言写测试脚本!自动化测试脚本并不能靠录制出来的,基本上是要靠本身写出来的,毕竟录制的脚本的弊端不少,尤为是前端使用了某些框架以后,录制的脚本基本成为鸡肋!

  (3)单元测试框架junit/testing,目前不少人采用selenium+junit或者selenium+testng测试架构,因此,须要掌握能配合selenium进行测试的框架,好比junit/testng,仅仅利用其提供的api即可以大大地辅助你的测试,提高测试效率!

  环境搭建

1、开发环境:

  一、JDK1.6

  二、Eclipse:Version: Kepler Service Release 1,下载地址:http://www.eclipse.org/downloads/

  三、Selenium:selenium-java-2.39.0.zip,下载地址:http://code.google.com/p/selenium/downloads/list

  解压selenium-java包,这个包里面包含四部分,以下图:

  

2、新建一个Java Project:

  一、建立一个java项目:

二、而后把上面解压出来的文件拷到新建的project目录下,目录结构以下图:

  

三、添加build path,项目目录右键-->Build Path--> config build path-->Java Build Path-->Libraries-->Add JARs,把libs文件夹下的jar包所有添加上,再添加selenium-java-2.48.2-srcs.jar和selenium-java-2.48.2.jar

  

三、添加完以后目录结构以下图,多了Referenced Libraries,这里就是上面那一步添加进去的jar包:

 

 至此,环境工做准备就绪,下面来写一个简单的小例子。

四、在src下面新建测试类,以下图:

五、添加代码,实现:打开百度,而后在百度搜索框输入helloworld,点击搜索按钮,关闭浏览器。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.*;

public class TestClass {

    public static void main(String[] args) {
        
        //若是火狐浏览器没有默认安装在C盘,须要制定其路径
        //System.setProperty("webdriver.firefox.bin", "D:/Program Files/Mozilla firefox/firefox.exe"); 
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.baidu.com/");
        
        driver.manage().window().maximize();
        
        WebElement txtbox = driver.findElement(By.name("wd"));
        txtbox.sendKeys("HelloWorld");
        
        WebElement btn = driver.findElement(By.id("su"));
        btn.click();
        
        driver.close();

    }

}

而后直接右键-->Run As-->Java Application就能够看到效果了。

相关文章
相关标签/搜索