zoukankan      html  css  js  c++  java
  • Selenium快速入门 转自(http://www.javaeye.com/topic/36879)

    概述

            我们公司是没有正规的测试人员的,对一个模块而言,功能是否完成都是由开发人员手工测试。项目后期经常发生这样的情况,开发人员更改一个BUG,自已测试表示通过,但是发到客户那却发现,BUG是改好了,以前正常工作的功能却不能工作了。对一个模块来讲,更改一个部分的代码,可能会造成连锁反应,如果要保证不会造成其他功能不受影响,必须进行全面的测试,这在项目后期,频繁更改BUG时,肯定是不现实的。 鉴于这种状况,考虑将Selenium引入到项目中。

            Selenium是ThoughtWorks公司开发的一套基于WEB应用的验收测试工具,直接运行在浏览器中,模拟客户操作。

            Selenium抽象出一系列命令来模块用户操作,比如open命令表示打开一个URL,click命令表示点击某个按钮。Selenium实际上将这些命令转化成实际的HTTP请求在浏览器中运行。

            具体支持哪些命令可以参见SpringSide的翻译

    Selenium IDE

           Selenium IDE是基于FIREFOX浏览器的一个插件,提供GUI界面来运行Selenium测试。Selenium IDE提供脚本录制功能,可以将用户在浏览器中执行的操作记录下来,生成各种形式的脚本,可以将这些脚本保存供以后使用。

           安装Selenium IDE的步骤如下:

    • www.openqa.org/selenium-ide/download.action下载Selenimu IDE(这是一个XPI后缀的文件)。
    • 启动FIREFOX浏览器,打开刚才下载的文件。
    • 重启FIREFOX浏览器,在工具菜条下应该就可以看到Selenium IDE菜单项

    Selenium RC

            Selenium Remote Control是一个测试工具,允许使用任何语言编写自动化的WEB UI测试用例。这个工具提供一个Selenium Server可以启动,停止和控制任何浏览器,这个服务器使用AJAX直接和浏览器进行交互,可以使用HTTP GET/POST请求向Selenium Server发送命令。这意味着可以使用任何编程语言向Selenium Server发送HTTP请求来自动化Selenium测试。为了简化这个过程Selenium提供各主流语言的包装对象,对于JAVA来说,是DefaultSelenium类。

           虽然Selenium提供简单的基于HTML TABLE的方式编写测试,考虑到开发人员对JAVA代码更熟悉一些,而且通过代码编写的测试,很容易通过ANT脚本和单元测试一起自动运行。下面的过程讲述如何使用JAVA编写Selenium测试。

    下载

           从www.openqa.org/selenium-rc/download.action下载Selenium RC相关文件,假定解压缩后的目录为HOME

    启动服务器

           Selenium Server是用JAVA实现的,相应的库文件在HOME/server/selenium-server.jar。运行如下代码从命令行启动:

    java 代码
    1. java -jar selunium-server.jar  

           命令行中也可以提供一些选项设置,具体的选项设置参见www.openqa.org/selenium-rc/options.html。如果要进行自动化测试,可以在ANT脚本中启动。

    编写测试用例

           要编写Selenium测试用例,首先必须交HOME/java/selenium-java-client-driver.jar文件加载到类路径中。然后编写一个JUNIT的单元测试,要构建一个Selenium,包括如下步骤:

    • 构建一个Selenium实例
    • 启动Selenium实例
    • 执行Selenium命令,并验证结果。要执行一个命令是通过调用Selenium实例的方法来完成的,具体有哪些命令可以参见JAVADOC
    • 关闭Selenium实例

           如下是一个示例,用来测试www.google.com,查找selenium,期望结果中包含"OpenQA: Selenium"。

    java 代码
    1. package com.thoughtworks.selenium;   
    2.   
    3. import junit.framework.*;   
    4.   
    5. import org.openqa.selenium.server.*;   
    6.   
    7. public class GoogleTest extends TestCase   
    8. {   
    9.    private Selenium selenium;   
    10.   
    11.    public void setUp() throws Exception {   
    12.         String url = "http://www.google.com";   
    13.        selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);   
    14.        selenium.start();   
    15.     }   
    16.       
    17.    protected void tearDown() throws Exception {   
    18.        selenium.stop();   
    19.    }   
    20.       
    21.    public void testGoogleTestSearch() throws Throwable {   
    22.         selenium.open("/intl/zh-CN/");   
    23.         selenium.type("q""selenium");   
    24.         selenium.click("btnG");   
    25.         selenium.waitForPageToLoad("30000");   
    26.         assertTrue(selenium.isTextPresent("OpenQA: Selenium"));   
    27.         checkForVerificationErrors();   
    28.     }   
    29.        
    30. }   

    参考资料

           花钱的年华的博客

           IBM中国文章

  • 相关阅读:
    Linux Shell 编程
    Linux下压缩与解压
    rsync实现文件备份同步
    linux中ulimit作用
    3dmax卡通渲染插件pencil+渲染线框
    世嘉开发部部长:这3点能提升游戏留存率
    消息中间件 分布式
    高并发高性能
    你的系统如何支撑高并发
    分布式系统的阿喀琉斯之踵:数据一致性
  • 原文地址:https://www.cnblogs.com/jinzhao/p/970605.html
Copyright © 2011-2022 走看看