zoukankan      html  css  js  c++  java
  • 测试人员如何搭建Selenium-Grid2环境(参考Java)

    Selenium对于我们进行web自动化测试有很大的帮助,如果要进行大范围的测试覆盖,就不能仅仅在一两台机器上跑了;同样Selenium-Grid也给我们提供了这样的帮助,我们可以借助Selenium-Grid很容易的实现分布式测试环境的搭建。不同于其它一些通用的分布式程序【如:hudson】,Selenium-Grid是专门针对Selenium的自动化分布式测试解决方案。

     

    其优点是:

    • 快速搭建分布环境【通过简单的参数配置】
    • 自动分配测试脚本【针对不同环境】
    • 只需一份测试代码【目标测试机不需要有测试代码】

    搭建Selenium2环境

     

    在搭建Selenium-Grid之前,首先要搭建每台测试机上的Selenium环境【准确点说应该是代理节点的环境】。这里以Java为例:

     
    1. 安装Java【下载
    2. 配置Java环境变量【这里
    3. 下载ie、chrome的driver程序【如果要测试其它浏览器还需额外下载;FF驱动默认在webdriver中,无需下载】
    4. 把ie、chrome的driver程序放到系统环境变量中【例如:system32下】
    5. 安装最新版的浏览器【FF、chrome等】
    6. 下载Selenium Webdriver【下载standalone server】
    7. 代码测试

    本地版:

    [java] view plain copy
    1. import org.openqa.selenium.*;  
    2. import org.openqa.selenium.firefox.*;  
    3. import org.openqa.selenium.chrome.*;  
    4. import org.openqa.selenium.htmlunit.*;  
    5. import org.openqa.selenium.ie.*;  
    6.   
    7. //    WebDriver driver = new ChromeDriver();  
    8. //    WebDriver driver = new FirefoxDriver();  
    9. //    WebDriver driver = new HtmlUnitDriver();  
    10.       WebDriver driver = new InternetExplorerDriver();  
    11.       driver.get("http://www.dangdang.com");  
    12.       System.out.println(driver.getCurrentUrl());  
    13.       driver.quit();  

    远程版:

    [java] view plain copy
    1. import org.openqa.selenium.*;  
    2. import org.openqa.selenium.remote.DesiredCapabilities;  
    3. import org.openqa.selenium.remote.RemoteWebDriver;  
    4.   
    5. DesiredCapabilities ffDesiredcap = DesiredCapabilities.firefox();  
    6. DesiredCapabilities chromeDesiredcap = DesiredCapabilities.chrome();  
    7. DesiredCapabilities ieDesiredcap = DesiredCapabilities.internetExplorer();  
    8. WebDriver wd = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), ieDesiredcap);  
    9. wd.get("http://www.google.com");  
    10. Thread.sleep(1200);  
    11. System.out.println(wd.getCurrentUrl());  
    12. wd.quit();  

    上述测试都成功了,就说明你的环境已经搭建成功,依次你可以在多个系统、平台上搭建Selenium2环境。

     
     

    注:

     

    如果使用IDE则把selenium-standalone-server的jar包引用到项目build path,如果直接从命令行编译和执行的话,则必须指定该jar包的路径,否则编译会失败。

     
    [java] view plain copy
    1. javac -classpath $HOME/path/to/selenium-server.jar Test.java  
    2. java -classpath $HOME/path/to/selenium-server.jar Test  
     

    搭建Selenium-Grid环境

     

    当所有测试机上的Selenium2环境搭建成功后,就可以开始启动Selenium-Grid2环境了。

     

    首先启动一个hub

     
    [java] view plain copy
    1. java -jar selenium-server-standalone-x.xx.x.jar -role hub   

    启动hub的机器可以不是测试机,任意一台机器有Java环境的机器都可以。这个是整个Selenium-Grid的中枢节点,所有的远程测试都会由经它后再被转发出去,然后在对应的测试机上执行测试。

     
     

    启动测试代理node

     
    [java] view plain copy
    1. java -jar selenium-server-standalone-x.xx.x.jar -role node  

    测试代理必须在测试机上启动【即之前搭建了Selenium2环境的机器上】,并且其注册的地址必须是hub所在的机器的ip和端口。一台测试机上可以启动多个代理,前提是要保证不使用相同的端口即可。【当然不建议这样做,尽量避免不稳定因素】

     
     

    查看Selenium-Grid状态

     

    当hub和所有的代理节点都启动成功后,可以通过浏览器查看当前Selenium-Grid的状态,直接访问地址http://localhost:4444/grid/console。 可以看到页面显示了可以支持测试的代理节点的数量和类型,这里显示的数量和类型和你启动代理节点时所带的配置参数有关。当启动代理节点时其实就是一个注册过程;启动时所带的参数会被hub记住作为注册信息,所以页面中所看到的信息就是各代理节点注册时信息的汇总。

    文章转自新浪博客(风一样的自由):http://blog.csdn.net/five3/article/details/9671287

  • 相关阅读:
    CSS开发中常用技巧总结
    Linq的分组功能
    深入理解 C# 协变和逆变
    js数组删除数组元素!
    关于 Photoshop 蒙版和 Alpha 通道
    jQuery数组处理详解(含实例演示)
    多媒体指令(灰度像素最大值)
    多媒体指令(图像均值模糊)
    matlab练习程序(立体相关块匹配)
    matlab练习程序(steerable filters)
  • 原文地址:https://www.cnblogs.com/testyao/p/5534470.html
Copyright © 2011-2022 走看看