testng 相关问题

TestNG是一个测试框架,专注于提供Java编程语言中的单元和功能测试功能。它支持并行测试,数据提供程序,依赖项,组和其他功能。

如何逐一运行 TestNG 测试

我有一个测试套件,我想逐一运行 XML 文件中的测试。但是当我运行它时,它会同时运行所有TC(我同时打开3个浏览器)。 我的 XML: 我有一个测试套件,我想逐一运行 XML 文件中的测试。但是当我运行它时,它会同时运行所有 TC(我同时打开了 3 个浏览器)。 我的 XML: <suite name="TestingSuite" preserve-order="true" parallel="false" verbose="10"> <test name="Test1"> <classes> <class name="guiAndFunctianal.LoginFail" /> <class name="guiAndFunctianal.LoginAsManager" /> <class name="guiAndFunctianal.CreateUserTest" /> </classes> </test> </suite> 我的 TC 看起来像这样: public class LoginFail extends AbstractTest{ @ BeforeTest public void openBrowser() { openBrowserFireFoxAllTcs(); } @ Test public void main (){ } @ AfterTest public void quit() { driver.quit(); } 抽象测试 public class AbstractTest { WebDriver driver = new FirefoxDriver(); WebDriverWait wait = new WebDriverWait(driver, 10); public void openBrowserFireFoxAllTcs() { driver.get("some URL"); } 我假设你想要顺序执行。打开浏览器>完成测试>关闭浏览器,然后对其他浏览器重复相同的操作。如果是这种情况,我会执行以下操作: TestNG.XML <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10" group-by-instances="false" preserve-order="true" allow-return-values="false"> <test name="firefox" junit="false" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <parameter name="browser" value="firefox" /> <classes> <class name="com.github.tests.GitHubHomePageTests" /> </classes> </test> <test name="ie" junit="false" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <parameter name="browser" value="ie" /> <classes> <class name="com.github.tests.GitHubHomePageTests" /> </classes> </test> <test name="chrome" junit="false" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <parameter name="browser" value="chrome" /> <classes> <class name="com.github.tests.GitHubHomePageTests" /> </classes> </test> </suite> 我如何实例化驱动程序: package com.github.tests; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.testng.annotations.*; public class BaseTest { public WebDriver driver; String url = "https://github.com/"; @Parameters("browser") @BeforeClass public void SetUpTests(String browser) { if (browser.equalsIgnoreCase("firefox")) { driver = new FirefoxDriver(); } else if (browser.equalsIgnoreCase("ie")) { System.setProperty("webdriver.ie.driver", ".\\drivers\\IEDriverServer.exe"); driver = new InternetExplorerDriver(); } else if (browser.equalsIgnoreCase("chrome")) { System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe"); driver = new ChromeDriver(); } //Navigate to url driver.navigate().to(url); //Maximize the browser window driver.manage().window().maximize(); } @AfterClass public void CleanUpDriver() throws Exception { // Quit current driver instance. try { driver.quit(); } catch (Exception ex) { throw ex; } } 如何试运行 package com.github.tests; import com.github.pageobjects.GitHubLandingPage; import org.testng.Assert; import org.testng.annotations.Test; public class GitHubHomePageTests extends BaseTest {@Test public void ExploreLinkTest() { String explorePageTitle = new GitHubLandingPage(driver) .clickGitHubExplorePage() .getGitHubExplorerPageTitle().trim(); System.out.println(explorePageTitle); Assert.assertEquals(explorePageTitle, "Explore GitHub"); } } 可在此处获取全球 Github 存储库 试试这个: <suite name="TestingSuite" preserve-order="true" thread-count="1" verbose="10"> <test name="Test1"> <classes> <class name="guiAndFunctianal.LoginFail" /> </classes> </test> <test name="Test2"> <classes> <class name="guiAndFunctianal.LoginAsManager" /> </classes> </test> <test name="Test3"> <classes> <class name="guiAndFunctianal.CreateUserTest" /> </classes> </test> </suite> 退出前关闭你的驱动程序: @测试后 公共无效退出(){ 驱动程序.close() 驱动程序.quit(); } 从 testng.xml 执行顺序测试 <suite name="Validation Suite" preserve-order="true" thread-count="1" verbose="10" parallel="false" configfailurepolicy="skip" allow-return-values="false"> <listeners> <listener class-name="ios.AllureListener"/> </listeners> <test name="Pricing Page Validations" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <classes> <class name="ios.PricingTierPageValidations"/> </classes> </test> <!-- Test --> <test name="Application Page Validations" skipfailedinvocationcounts="false" preserve-order="true" group-by-instances="false" allow-return-values="false"> <classes> <class name="ios.ApplicationPageValidations"/> </classes> </test> </suite>

回答 4 投票 0

如何禁用 TestNG 控制台日志记录 [main] INFO org.testng.internal.Utils -

我有一个使用 Selenium、TestNG 和 Log4j 进行日志记录的自动化框架。运行测试时,TestNG 会在控制台生成一个我想禁止的特定日志。日志消息是: [...

回答 1 投票 0

在运行时为 TestNG Suite 设置全局变量?

我用 Java 编写了一个 TestNG Suite,它将使用测试帐户在另一个系统上运行。该帐户的凭据存储在密码库中,并通过 API 获取。每个...

回答 1 投票 0

使用mockito模拟javax.xml.ws.Service父类

我有一个Java类,我正在尝试使用testng和mockito编写单元测试。该类继承自 javax.xml.ws.Service 类。 服务类所需的 WSDL URL 当前为

回答 1 投票 0

我想模拟一个类的构造函数,并且仍然使用 Mockito 调用该类的真实方法

我正在尝试对 A 类进行单元测试,我在其构造函数 getB() 中调用一个方法。我想对这个类 A 进行单元测试,而不在构造函数内调用此方法,以便测试其他方法

回答 1 投票 0

当我想登录时,类扩展不起作用

当我想扩展类并在打开登录功能 URL 的情况下调用 NewTest 类时遇到问题,但之后没有任何反应,测试不会继续登录,功能不

回答 1 投票 0

从 Excel Sheet 读取信息,而不是将其放在 testConfig.properties 中

我正在构建一套自动化测试(Java、selenium、testNg、Apache POI)。 我有一个配置文件 .properties,其中有我使用的环境,每次我评论一个并使用另一个时......

回答 1 投票 0

自动化测试时使用重试功能时的Jenkins状态

我正在我的一个测试存储库中使用重试监听器,该存储库每天都在运行。 在 jenkins 中,我们使用 TestNG 结果插件 835.v51 在图片中您可以看到所有测试都已通过并且...

回答 1 投票 0

如何在 testNG 中重新运行跳过的测试?

我正在使用 TestNG 进行测试。在某些测试中,会生成测试数据,因此在 afterMethod 中我检查是否生成了额外的数据。如果是这样我就删除它。但有时出于某种原因数据会删除...

回答 2 投票 0

Dataprovider+TestNG - 线程“surefire-forkedjvm-command-thread”中出现异常 java.lang.OutOfMemoryError:Java 堆空间

我有一个基于 testng 和 dataprovider 的测试自动化框架。我在 jenkins job 的帮助下在服务器上运行我的代码。该作业使用 maven 命令行执行测试用例。这个工作是taki...

回答 1 投票 0

NoClassDefFoundError:org/testng/TestNG

这个错误 NoClassDefFoundError:org/testng/TestNG 当我尝试使用 IntelliJ IDEA 从 Testng.xml 文件运行测试时出现。 一项一项地运行我的测试和运行一样完美......

回答 9 投票 0

如何解决Selenium中页面对象模型中的java.lang.NullPointerException?

测试基类:- 公共类测试库{ 公共静态WebDriver驱动程序; 公共静态属性道具; // TestBase类构造函数用于初始化properties对象 ...

回答 2 投票 0

Dataprovider 与 xls 中每行的验证函数存在问题

我有以下课程 公共类 DataProiders { @DataProvider(名称=“数据”) 公共 String[][] getAllData() 抛出 IOException { // 使用 XLUtils 类,该类使用 XSSWorkbook 来获取...

回答 1 投票 0

在类路径中找不到功能:/cucumberOptions

我正在创建一个使用 cucumber、junit 和 TestNG 的自动化项目。 我的POM文件如下: 我正在创建一个使用 cucumber、junit 和 TestNG 的自动化项目。 我的POM文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>main.project</groupId> <artifactId>project</artifactId> <version>0.0.1-SNAPSHOT</version> <name>project</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.3.0</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aventstack/extentreports --> <dependency> <groupId>com.aventstack</groupId> <artifactId>extentreports</artifactId> <version>5.0.5</version> </dependency> <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>6.9.0</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java --> <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>6.9.0</version> </dependency> <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-testng --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>6.9.0</version> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java8</artifactId> <version>6.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin> <plugin> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build> </project> 我还创建了一个新的 cucumberTestNG.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite"> <listeners> <listener class-name = "project.Listeners"/> </listeners> <test name="Validate User Login"> <classes> <class name="cucumberOptions.TestRunner"/> </classes> </test> </suite> 我的测试运行者: package cucumberOptions; import org.junit.runner.RunWith; import io.cucumber.junit.Cucumber; import io.cucumber.junit.CucumberOptions; import io.cucumber.testng.AbstractTestNGCucumberTests; //@RunWith(Cucumber.class) @CucumberOptions( features = "src/test/java/features", glue = "stepDefinitions") public class TestRunner extends AbstractTestNGCucumberTests { } 如果我使用 TestNG Suite 运行 cucumberTestNG 文件,则会收到以下错误: Dec 09, 2020 9:16:16 PM io.cucumber.testng.TestNGCucumberOptionsProvider warnWhenJUnitCucumberOptionsAreUsed WARNING: Ignoring options provided by io.cucumber.junit.CucumberOptions on cucumberOptions.TestRunner. It is recommend to use separate runner classes for JUnit and TestNG. Dec 09, 2020 9:16:16 PM io.cucumber.core.runtime.FeaturePathFeatureSupplier get WARNING: No features found at classpath:/cucumberOptions 文件夹结构: 我的环境变量中有Java和Maven 我查看了诸如 cucumber jvm CucumberException: No features found at [] 之类的问题 并确保我的正确性用黄瓜进行测试(第一个答案),但没有运气。 如警告中所述 Dec 09, 2020 9:16:16 PM io.cucumber.testng.TestNGCucumberOptionsProvider warnWhenJUnitCucumberOptionsAreUsed WARNING: Ignoring options provided by io.cucumber.junit.CucumberOptions on cucumberOptions.TestRunner. It is recommend to use separate runner classes for JUnit and TestNG. 当前您正在导入 junit cucumber 选项。 import io.cucumber.junit.CucumberOptions; 对于 TestNg 运行器类,您需要导入 testng.CucumberOptions import io.cucumber.testng.CucumberOptions; cucumber-jvm 存储库中的示例 import io.cucumber.testng.AbstractTestNGCucumberTests; import io.cucumber.testng.CucumberOptions; import org.testng.annotations.DataProvider; @CucumberOptions(plugin = { "html:target/results.html", "message:target/results.ndjson" }) public class RunCucumberTest extends AbstractTestNGCucumberTests { @DataProvider(parallel = true) @Override public Object[][] scenarios() { return super.scenarios(); } } 我遇到了同样的问题,我通过将 Cucumber 依赖项从版本 6.11.0 降级到 1.2.6 解决了这个问题,并且我确保 cucumber-java 和 cucumber-testng 具有相同的版本,即 pom.xml 中的 1.2.6你可以看到下面: Aslo 我的 TestRunner 类如下所示,而不是扩展 AbstractTestNGCucumberTests 你应该(cucumber.api.testng.AbstractTestNGCucumberTests) 我也有类似的问题。原因是我有多个与 junit5 和 testng 相关的依赖项,所以我删除了所有与 junit5 相关的依赖项,只保留了 testng 的依赖项。然后,有了功能文件和 testng.xml 的正确路径,它就开始工作了。

回答 3 投票 0

如果在 TestNG 中执行组,则不会调用 @Before Suite 和 @BeforeTest 方法

下面是我的 XML 文件和演示类。 Precondition() 方法将在 demo1() 方法之前运行,postCondition() 方法将在 demo1() 方法之后运行。 demo2() 的过程相同。但是当我运行 c...

回答 2 投票 0

QAF Allure 报告未生成

Allure 报告未在 QAF 框架(testng)中生成。我在 pom.xml 中配置了以下配置 io.qameta.allure 阿尔...

回答 1 投票 0

指定测试用例不使用 Cucumber 与 Spring 中的 TestNG 运行器并行运行

我已经能够使用 TestNG 运行程序将项目配置为并行运行测试用例;然而,有一些场景不是很线程安全。如果这些测试用例成功...

回答 2 投票 0

java.lang.NoClassDefFoundError:无法初始化类org.mockito.internal.util.MockUtil

我想使用testng + powermock + spring来运行测试代码,我的jar版本是: powermock = 1.6.2 powermock-模块-testng = 1.6.2 模拟 = 1.10.19 测试=6.8.7 弹簧 = 4.1.1.RELEASE JDK = 1.8.0...

回答 3 投票 0

Github Actions 测试运行显示 0 个测试,本地运行所有测试均运行正常

我已经设置了一个存储库,用于使用 TestNG 和 Maven 构建/运行 selenium 测试。在我的机器上本地运行测试,测试运行没有任何问题,但是在设置 Github acti 之后...

回答 1 投票 0

Allure Rest Assured 中的黑名单标题

我目前正在使用 Allure 报告来捕获我的放心测试的结果,但我遇到了挑战。 具体来说,我在过滤或将标头列入黑名单时遇到问题

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.