我正在探索硒网格,用于在多个浏览器上执行测试。我已经按照在线教程配置了集线器和节点。我已经创建了一个测试脚本。
这是测试脚本的代码:
public class SeleniumGridTest {
WebDriver driver;
String baseUrl, nodeUrl;
static FirefoxProfile myprofile;
@BeforeTest
public void beforeTest() throws MalformedURLException {
ProfilesIni profile = new ProfilesIni();
myprofile = profile.getProfile("SeleniumAuto");
nodeUrl = "http://10.233.18.60:5566/wd/hub";
DesiredCapabilities capability = DesiredCapabilities.firefox();
capability.setBrowserName("firefox");
capability.setCapability(FirefoxDriver.PROFILE, myprofile);
driver = new RemoteWebDriver(new URL(nodeUrl), capability);
}
@Test
public void google() {
driver.get("http://www.google.co.in");
System.out.println(driver.getCurrentUrl());
}
@Test
public void newtours() {
driver.get("http://newtours.demoaut.com");
System.out.println(driver.getCurrentUrl());
}
@AfterTest
public void afterTest() {
driver.quit();
}
}
我的目标是在多个浏览器上运行此测试,我已经添加了所需的功能,如火狐,
1)should I add desired capabilities for other browsers in the
@BeforeTest annotation? for eg capability.setBrowserName("chrome");
2)is that enough to run on multiple browsers.
3)If I have to run a suite of tests, where should I add the selenium grid configuration
details in all the tests or is it possible in testNG xml?
4)what is the best practice used in real time?
感谢任何帮助
你需要有不同的浏览器(每一个Chrome或IE或Firefox)的单独的功能,你需要编写代码来接受testng.xml参数,以便各自的浏览器可以在节点机器上运行…
通常测试脚本是使用testng.xml运行的,但是每个浏览器的配置细节,你需要把它们保存在你想运行的每个节点机器上
您需要在每个节点机器中运行命令/可以在每个节点机器中创建 bat 文件,并在运行 testng.xml 之前运行/保持它们。
有关更多信息,您可以参考此链接
到目前为止还没有最佳实践,根据您的需要,您可以自定义内容,因此首先尝试在多台计算机上运行的基本步骤。
我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。
我正在使用GEB/Spock进行自动化测试。我正在使用Gradle作为我的构建工具。 我想调用不同的gradle任务来构建和运行一个特定的规范(测试)或一套规范。 显然,已经有了现有的构建指令,因为我可以调用,而且所有的规范都在Chrome上运行,我只是不知道如何添加更多的任务
问题内容: 我有一种创建2个远程Web驱动程序的方法。一个带有chrome,另一个带有Firefox: Driver.cs 然后我有一个Test类: } 问题是当Driver.Intialize被调用时,它无法同时运行chrome和firefox。我要发生的是,调用Init方法时,它将启动两个浏览器并在每个浏览器中运行测试方法。 问题答案: 我目前使用NUnit的方式。我遇到了同样的问题,找不到使
问题内容: 我正在尝试通过for循环在多个浏览器中运行相同的测试,但它始终仅在Firefox上运行。 一项有趣的观察;当我包含该参数时,它仅在Internet Explorer上运行。 Selenium Webdriver是否以这种方式工作,或者我的理解是错误的? 问题答案: 我实际上已经在Java中完成了此操作,以下对我来说效果很好: 如果您要使用其他语言编写测试,则当然需要对此进行调整,我知道
问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文
问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,