试玩Selenium的Grid

简介:
Selenium Grid是一个分布式 测试平台,它可以通过一个 server端的hub服务来控制多个用于提供Selenium脚本运行环境的client端,起到并发在多台机器上运行的作用。整个结构是由一个hub节点和若干个代理节点组成的。hub用于管理各个代理节点的注册和状态信息,并接受远程客户端代码的请求调用,然后把请求的命令再转给代理节点来执行,同时需要一个hub和至少一个代理节点。除此之外,grid还支持一种更友好的功能,其可以根据用例中启动测试的类型来相应的把用例转给符合匹配要求的测试代理。
   下面说下本人如何搭建环境的:
  1. 准备三台机器(一台为主机[提供hub服务],另两台为从机[client端])
  2. 三台机器都安装好JDK环境(可参见本人的“Selenium2.0测试工程的搭建”)
  3. 三台机器上都确保有selenium server的jar包
  本人在主机上创建主节点,并在主机和两台从机上各创建一个子节点。最终的现象是在这三台机器上并发运行。
  (1) 启动主节点
  在主机上打开命令行,cd至selenium server jar包所在的路径下,用命令启动主节点hub服务: java -jar selenium-server-standalone-2.39.0.jar -role hub 启动的默认端口是4444,如果要改变这个端口号,则命令后加上-port XXXX,如端口号改为6666,命令为java -jar selenium-server-standalone-2.39.0.jar -role hub -port 6666
   (2) 启动子节点
  在从机上打开命令行,cd至selenium server jar包所在的路径下,用命令启动子节点的服务:java -jar selenium-server-standalone-2.39.0.jar -role node -hub http://10.1.3.59/grid/register 启动的默认端口是5555。其中,10.1.3.45为hub所在主机的IP地址。由于本人在主机上创建了主节点和一个子节点,所以这两个节点的port应不同。
  启动完成后,可以在主机上打开浏览器http://localhost:4444/grid/console,来查看各节点的状态。
  最后,编辑代码(主节点的port为4444,各子节点的port为5555,主机IP为10.1.3.59,两台从机IP分别为10.1.3.197和10.1.3.200):
public string[] strServer = new string[3];
public const string strWeb = "http://www.baidu.com";
public void TestGrid()
{
strServer[0] = "http://10.1.3.197:5555/wd/hub";
strServer[1] = "http://10.1.3.200:5555/wd/hub";
strServer[2] = "http://10.1.3.59:5555/wd/hub";
int nThreadCount = 3;
Thread[] threads = new Thread[nThreadCount];
for (int i = 0; i < nThreadCount; i++)
{
threads[i] = new Thread(new ThreadStart(OpenWeb));
threads[i].Name = i.ToString();
}
foreach(Thread t in threads)
{
t.Start();
}
Thread.Sleep(60000);
}
public void OpenWeb()
{
DesiredCapabilities dc = DesiredCapabilities.InternetExplorer();
int nId = Convert.ToInt32(Thread.CurrentThread.Name);
Uri seleniumServer = new Uri(strServer[nId]);
Uri addr = new Uri(strWeb);
RemoteWebDriver driver = new RemoteWebDriver(seleniumServer, dc);
driver.Navigate().GoToUrl(addr);
}

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
10月前
|
JSON 数据管理 测试技术
自动化测试工具Selenium Grid的深度应用分析深入理解操作系统的内存管理
【5月更文挑战第28天】随着互联网技术的飞速发展,软件测试工作日益复杂化,传统的手工测试已无法满足快速迭代的需求。自动化测试工具Selenium Grid因其分布式执行特性而受到广泛关注。本文旨在深入剖析Selenium Grid的工作原理、配置方法及其在复杂测试场景中的应用优势,为测试工程师提供高效测试解决方案的参考。
|
10月前
|
敏捷开发 监控 测试技术
探索自动化测试工具Selenium Grid的高效集成策略
【4月更文挑战第30天】在现代Web应用的快速迭代和持续部署中,测试自动化已成为确保产品质量的关键。Selenium Grid作为一款支持多种浏览器和操作系统的测试工具,提供了并行执行测试用例的能力,极大地提升了测试效率。本文将深入探讨如何高效地将Selenium Grid集成到现有的测试框架中,以及实施过程中的最佳实践,帮助团队最大化测试覆盖率,同时降低资源消耗。
|
10月前
|
敏捷开发 Java 测试技术
探索自动化测试工具Selenium Grid的高效应用
【4月更文挑战第21天】 随着敏捷开发和持续集成的理念深入人心,自动化测试已成为软件开发过程中不可或缺的一环。本文将深入探讨如何利用Selenium Grid进行高效的自动化测试。通过分析其工作原理,搭建过程,以及在实际项目中的应用案例,揭示Selenium Grid在处理大规模并发测试中的潜力和优势。文章不仅提供了具体的操作步骤,还讨论了优化策略,帮助读者构建更加稳定和高效的自动化测试环境。
108 7
|
10月前
|
敏捷开发 监控 前端开发
自动化测试中Selenium Grid的优化策略
【4月更文挑战第12天】 在持续集成和持续部署(CI/CD)流程日益重要的今天,自动化测试成为确保软件质量的关键步骤。Selenium Grid作为实现并行测试的有效工具,其性能优化直接关系到测试效率的提升。本文将探讨针对Selenium Grid的优化策略,包括环境配置、脚本设计及资源管理等,旨在为软件测试工程师提供实用的参考,以缩短测试周期,提高自动化测试的整体效能。
86 3
|
Web App开发 Docker 容器
百度搜索:蓝易云【用docker搭建selenium grid分布式环境实践】
通过这些步骤,您可以使用Docker搭建Selenium Grid分布式环境,并在多个节点上并行运行Selenium测试。根据实际需求,您还可以进行更高级的配置和扩展,如增加更多的节点、配置浏览器版本等。
80 1
|
存储 JSON Java
22-selenium之grid分布式测试
22-selenium之grid分布式测试
22-selenium之grid分布式测试
|
Web App开发 测试技术 调度
浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid
“世界上有那么多城市,城市里有那么多的酒馆,可她,却偏偏走进了我的.....”,这是电影《卡萨布拉卡》中的一句著名独白,投射到现实生活中,与之类似的情况不胜枚举,这世界上有那么多的系统,系统中有那么多的浏览器,在只有一台测试机的前提下,难道我们只能排队一个一个地做兼容性测试吗?有没有效率更高的方法呢?为此我们提出一个更高效的解决方案:使用Docker+Selenium Grid。
浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid
|
Web App开发 存储 测试技术
软件测试|Selenium Grid作用是什么? Selenium Grid 的使用过程?
软件测试|Selenium Grid作用是什么? Selenium Grid 的使用过程?
软件测试|Selenium Grid作用是什么? Selenium Grid 的使用过程?
|
Java 测试技术
软件测试面试题:Selenium Grid的使用过程?
软件测试面试题:Selenium Grid的使用过程?
92 0
|
测试技术
软件测试面试题:Selenium Grid作用是什么?
软件测试面试题:Selenium Grid作用是什么?
121 0

热门文章

最新文章