分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

.NET自动化测试工具:Selenium Grid

发布时间:2023-09-06 01:07责任编辑:苏小强关键词:.NET

  在生产环境,QA会同时跑几十个上百个的test case。如果用单机串行的话,是一件非常耗时的事情,估计比手点快不了多少。使用并行方案的话,有两种方法,一个是自己写并行框架,一个是用现成的Selenium Grid。

自己写并行框架,好处是一切尽在掌控,有问题可以快速定位,针对业务的定制化程度高,用户用起来方便。目前想到的问题是,如果在单机多账户登录同一系统的情况下,会不会串cookie?不过我发现,可能是浏览器厂商把不同的Driver实例给隔离了,这样就省很多事。实现思路大体是:各Client(测试脚本的解析器)向MQ队列发送TestCase消息,多个执行器监听同一队列消费消息,执行测试用例,再返回结果。

由于自己偷懒,这里先用现成的Selenium Grid来做并行。SeleniumGrid是一个集群,有一个中心节点,称为hub;多个执行节点,称为node。其中,Hub的职责是管理各Node节点(如节点信息、是否Alive)、与Client建立连接、向各Node发送执行命令。 Client与Hub的分界点在Driver这儿。即Selenium脚本还是在Client上跑,但是控制的Driver是在Grid里面。(这其实跟自己写并行框架的边界划分已经不同了)。下面就入个门,介绍一下安装、运行、Helloworld(哦,应该是Hello baidu...)

1. 下载:

  1.Selenium Standalone Server: http://www.seleniumhq.org/download/

  

  2.各种Driver。在www.seleniumhq.org/download也能找到入口。

  

  ChromeDriver可以直接访问:https://sites.google.com/a/chromium.org/chromedriver/

2. 安装:

  1. 找两台机器,虚拟机也可以。我这里用的是A:10.189.1.206,B:10.189.1.201。A作为Hub,B作为Node

  2. 安装Hub:把下载的selenium-server-standalone-3.5.2.jar 放在在A机器上,运行命令:

java -jar selenium-server-standalone-3.5.2.jar -role hub

  

  3. 安装Node:同样,把下载的selenium-server-standalone-3.5.2.jar 放在在B机器上,运行命令:

  java -jar selenium-server-standalone-3.5.2.jar -role node -port 6666 -hub http://10.189.1.206:4444/grid/register

  这里必须要指定Hub的地址,端口号(port)可以设定,也可以不管。执行完后,Hub的界面如下,表示Hub已经接受了Node的注册:

  

  可以访问整个Grid的控制台:http://10.189.1.206:4444/grid/console/

  

  4. 在Hub和Node上安装ChromeDriver:

    把下载的chromedriver.exe复制到A机器上,比如放在C:\SeleniumPlugins目录下。在环境变量的Path中,添加该目录地址:C:\SeleniumPlugins。

    在B机器上,执行同样的操作。

    

3. C#代码: 

  1. 创建控制台项目,添加Selenium引用。

  

  2. 代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using OpenQA.Selenium;using OpenQA.Selenium.Remote;using OpenQA.Selenium.Chrome;namespace RunTestOnRemoteGrid{ ???class Program ???{ ???????static void Main(string[] args) ???????{ ???????????IWebDriver driver=new ChromeDriver(); ???????????try ???????????{ ???????????????driver = new RemoteWebDriver(new Uri("http://10.189.1.206:4444/wd/hub"), new ChromeOptions()); ???????????????driver.Navigate().GoToUrl("http://www.baidu.com"); ???????????} ???????????catch (Exception ex) ???????????{ ???????????????Console.WriteLine(ex.ToString()); ??????????????} ???????????finally ???????????{ ???????????????driver.Quit(); ???????????} ???????} ???}}

  3. 运行:就可以看到Client端在执行,没啥动作,而B机器上,打开了Chrome浏览器,访问Baidu

.NET自动化测试工具:Selenium Grid

原文地址:http://www.cnblogs.com/cc299/p/7449630.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved