selenium提供的selenium grid,可以用于多线程测试,节省测试时间
原理:
selenium grid是由一个hub和多个node组成,node把信息注册到hub,hub管理全部注册的node的信息(browser、platform等信息),执行测试用例时,先调用hub,然后hub根据node的注册信息,选中一个node,把命令发给这个node执行。
准备:
1.selenium grid已经集成到Selenium-RC server里,只需要下载一个server的jar包即可,下载地址:http://selenium-release.storage.googleapis.com/index.html
下载:selenium-server-standalone-2.53.1.jar(挑选了较新的版本)
2.启动hub:
a.打开cmd
b.输入java -jar XXXXX\selenium-server-standalone-2.53.1.jar -role hub
c.回车
jar包用了绝对路径,可以配置环境变量,用相对路径即可。(编辑成bat文件,方便下次使用)
3.启动node:
注意点:node的机器一定要能ping通(充当hub的机器去ping充当node的机器),不能ping通是无法建立session的,会报错。
a.在测试机安装jre环境
b.打开cmd
c.输入:java -jar XXXX\selenium-server-standalone-2.53.1.jar -role node -hub http://hub的ip:4444/grid/register
d.回车
注意:要启动chrome和ie,需要指定相应的webdriver位置,比如chrome,需要改成:
java -jar XXXX\selenium-server-standalone-2.53.1.jar -role node -hub http://hub的ip:4444/grid/register -Dwebdriver.chrome.driver=”XXchromedriver路径XX\chromedriver.exe”
4.充当hub的电脑上打开地址:http://127.0.0.1:4444/grid/console#
查看注册到hub的node信息
5.编写测试用例,调用node:
package Login;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.jasper.tagplugins.jstl.core.Url;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class Test
{
public static void main(String[] args) throws MalformedURLException
{
DesiredCapabilities test=DesiredCapabilities.chrome();
WebDriver dr= new RemoteWebDriver(new URL("http://node机器ip:5555/wd/hub"),test);
dr.get("https://www.baidu.com/");
}
}
运行,就能看到node机器打开chrome浏览器了