gpt4 book ai didi

java - Maven+ Selenium 2 : How to run tests with one single browser open

转载 作者:行者123 更新时间:2023-12-02 05:39:21 24 4
gpt4 key购买 nike

我正在尝试运行一些测试,具体来说是七个测试,我已经创建了我的 xml 文件,并且它工作正常,我的测试文件有一个包,其中包含七个测试,所以事情是,当执行 xml 文件时,它会为每个测试打开一个新的浏览器窗口(如果您想知道,我确实有驱动程序退出和关闭函数,它们位于 @afterTest 注释中),我不希望这样,我需要的只是始终打开一个浏览器,例如完成第一个测试后,关闭该浏览器,因为对于第二个测试,第二个浏览器打开,我想要的是在每个测试完成后关闭每个浏览器,这是实现这一目标的方法吗?

这是我的 pom 文件:

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<groupId>com.enterprise.automation</groupId>
<artifactId>enterpriseAutomation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>barcoAutomation</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- added -->
<suiteFile>src/test/resources/barcoColor.xml</suiteFile>
</properties>

<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<!-- <classifier>jdk17</classifier> -->
</dependency>
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.42.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>

</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/myTestsFile.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/test/resources/</directory>
</resource>
</resources>
</build>

编辑:我不想打开七个浏览器的原因是因为我们正在测试一个 SPA,它有很多 javascript 并且它消耗了太多的电脑资源,所以如果打开多个浏览器,计算机性能会下降滴

我还看到了“-1”,如果您能告诉我如何改进问题细节,我将不胜感激

谢谢

最佳答案

使用@BeforeSuite@AfterSuite代替@AfterTest@BeforeTest

创建一个包含@BeforeSuite和@AfterSuite的BaseTest类。

public class BaseTest{
static WebDriver driver;
@BeforeSuite
public void start() {
driver = new FFDriver();
driver.get(url);
}


@AfterSuite
public void end() {
driver.close();
driver.quit();
}
}

创建测试类。

public class Test1{
static WebDriver driver;
@Test
public void test1() {
driver = BaseTest.driver;
//code goes here
}
}


public class Test2{
static WebDriver driver;
@Test
public void test2() {
driver = BaseTest.driver;
//code goes here
}
}

修改testNG xml文件如下。

<suite name="Regression Testing" parallel="classes">
<test verbose="2" name="Test1">
<classes>
<class name="BaseTest"/>
<class name="Test1"/>
</classes>
</test>
<test verbose="2" name="Test2">
<classes>
<class name="Test2"/>
</classes>
</test>
</suite>

首先运行@BeforeSuite,然后运行Test1、Test2 和@AfterSuite。通过在BaseTest中将driver设置为static,在每个Test类中获取Driver实例。

请告诉我这是否对您有帮助。

关于java - Maven+ Selenium 2 : How to run tests with one single browser open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com