TestNG是一个测试框架,专注于提供Java编程语言中的单元和功能测试功能。它支持并行测试,数据提供程序,依赖项,组和其他功能。
我知道可以获取 TestNG 方法的参数,如下所述:https://testng.org/parameters.html 但是,我需要获取 TestNG 方法的参数。 这个可以得到吗? 对于
通过 Eclipse 使用 TestNG 和 Java 12 执行 Selenium 测试时初始化引导层 java.lang.module.FindException 时发生错误
ErrorOccuredDuringInitializationofbootlayer 我运行时不断收到此错误 我的测试: boot层初始化时出错 java.lang.module.FindException:无法派生...
无法从 src/main/java 调用 src/test/java 内的代码?
我正在使用 testNG 编写测试用例,所有测试用例代码都位于 src/test/java 文件夹内,现在我想在部署
无法从命令行使用 testng.xml 运行 selenium jar 文件
我正在尝试使用 TestNG.xml 从命令行在 Gradle 上运行 Selenium Java 测试(jar 文件)构建。 注意:我能够从 IntelliJ 成功运行测试用例。 但是当我打包产品时...
嘿! 我已在 pom.xml 中包含 testng 依赖项 org.testng 测试 7.10.2 嘿! 我已在我的 pom.xml 中包含了 testng 依赖项 <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.10.2</version> <scope>test</scope> TestNG 插件可在 eclipse 市场的已安装部分中找到。 运行“mvn cleancompile”后终端出现错误: 无法在项目 Smoke-TestNg 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile):编译失败: 编译失败: [错误] /home/[电子邮件受保护]/eclipse-workspace/X2-CRUD-TestNg/src/main/java/Pages/Opportunities.java:[17,18] 包 org.testng 不存在 详细的调查结果截屏:https://drive.google.com/file/d/1B9wjy7CotyiWCyCuPfVKJZFS59D5Y8Ma/view?usp=sharing 将范围从“test”更改为“compile” <scope>compile</scope> 希望它有效!
使用ThreadLocal并行测试中线程ID不匹配和NullPointerException问题
我正在使用 TestNG 和 Cucumber 运行并行测试。我正在使用 ThreadLocal 管理驱动程序对象。但是,我注意到 setDriver 和 getDriver 方法在不同的线程上运行我...
如何互连子自动化项目以创建一个单父项目来运行 e2e 测试用例
我们有3个项目,我们称之为A、B和C 所有 3 个项目都有不同的团队致力于创建自动化测试用例。但这 3 个项目合并起来创建一个项目 我需要...
目前有没有办法根据条件禁用 TestNG 测试 我知道您当前可以在 TestNG 中禁用测试: @Test(启用= false,组= {“废话”}) 公共无效测试货币(){ ... } 我
需要单击 Salesforce 中的“联系人”选项卡,出现错误“无法读取未定义的属性(读取“defaultView”)”
通过自动化脚本想要单击 Salesforce 中的“联系人”选项卡。但无法这样做。 出现错误: org.openqa.selenium.JavascriptException:javascript错误:无法读取undef的属性...
控制器 @RestController @验证 类我的控制器{ @GetMapping("/foo") 公共字符串展开(@Min(1)@RequestParam(“param”)int param){ 返回整数。
我们可以在子类中设置一个线程局部变量并在Java中的父类中访问它吗?
我有一个自动化项目,有两个测试类(子类)和一个测试库(父类)。在 TestBase 中,我定义了一个线程局部属性,如下所示。 受保护的ThreadLocal 我有一个自动化项目,有两个测试类(子类)和一个测试库(父类)。在 TestBase 中,我定义了一个 threadlocal 属性,如下所示。 protected ThreadLocal<ITestContext> iTestContextThreadLocal = new ThreadLocal<>(); 在每个子类中,我将一个名为“feature”的属性设置到该 ThreadLocal 属性中。示例 Child 类如下所示。 public class RestTests extends TestBase{ @BeforeClass(alwaysRun = true) public void init(ITestContext iTestContext) { iTestContext.setAttribute("feature", "Sample - RestTests1"); iTestContextThreadLocal.set(iTestContext); String feature = iTestContextThreadLocal.get().getAttribute("feature").toString(); } @Test public void testScenario1(){ //Automation Code } } 在 TestBase 中,我有一个“AfterMethod”,在其中我尝试访问子类的 before 方法中设置的值。 @AfterMethod(alwaysRun = true) public void test() { try { ITestContext iTestContext = iTestContextThreadLocal.get(); String feature = iTestContext.getAttribute("feature").toString(); System.out.println("***** ThreadLocalAttribute: " + feature); //Rest of the code } } catch (Exception e) { e.printStackTrace(); } finally { // Clean up the ThreadLocal variables after method execution iTestContextThreadLocal.remove(); } } 我面临的问题是 - 一个类中的并行测试执行(在类和方法中)功能集作为输出提供。 举个例子,如果我将“Sample - RestTests1”和“Sample - RestTests2”设置为子类中的功能,当我尝试使用以下代码在 TestBase afterMethod 中访问它们时,仅给出一个类的功能 iTestContext.getAttribute("feature").toString(); 如何解决这个问题并通过 TestBase 的 AfterMethod 获取每个类中的功能集? 我尝试过改变注释的顺序,并尝试了互联网上的解决方案。但目前还没有找到解决办法。 非常感谢任何帮助。 预先感谢。 例如,如果您阅读类似主题的this问题,您会发现 TestNG 的每个测试类仅创建一个实例的策略存在问题,以及如果测试应在以下环境中运行则如何重置状态平行。 我想在你的情况下,你不应该使用 init 方法 @BeforeClass,而应该使用 @BeforeMethod,或者也许 @BeforeTest(不记得确切的名称)。
testng.xml 中参数的多个值(不使用 dataProvider)
我想使用不同的参数值多次运行我的测试用例。是否可以使用 testng.xml 和 @Parameters 注释? 例如。 我想使用不同的参数值多次运行我的测试用例。是否可以使用 testng.xml 和 @Parameters 注释? 例如。 <test name="Login Tests"> <parameter name="one" /> <parameter name="two" /> <classes> <class name="test.java.Login"/> </classes> </test> 因此,这应该运行测试两次,一次使用值一,然后使用值二。 是否可以使用testng.xml和@Parameter? Q2。另外,是否可以仅为套件中的特定 @Test 添加参数 例如。我的 TestSuite 有 2 个测试用例和一个与其关联的 testng.xml。 是否可以在 testng.xml 中仅为一个 @Test 添加 @Parameters,因为我的两个测试都采用相同的参数。 下面的示例基本上应该可以帮助回答您所有的问题。 如何根据通过 @Test 标签提供的值多次运行 <parameters> 如何仅将参数传递给特定的测试类 import org.testng.ITestContext; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class FirstTestClass { @Test(dataProvider = "getData") public void testMethod(String param) { System.out.println("Name = " + param); } @DataProvider public Object[][] getData(ITestContext context) { String parameter = context.getCurrentXmlTest().getLocalParameters().get("names"); String[] names = parameter.split(","); Object[][] returnValues = new Object[names.length][1]; int index = 0; for (Object[] each : returnValues) { each[0] = names[index++].trim(); } return returnValues; } } 在这里,我们通过使用 testng.xml 将通过 , 文件传递的单个参数解析为多个值 这是第二个测试类的样子,它将接收测试类特定的参数。 public class SecondTestClass { @Test @Parameters({"age"}) public void testMethod(int age) { System.out.println("Age = " + age ); } } 最后,这是 testng.xml 的样子: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="45160355_Suite" parallel="false" verbose="2" > <test name="45160355_test" verbose="2"> <parameter name="names" value="Cedric, Julien"/> <classes> <class name="com.rationaleemotions.stackoverflow.qn45160355.FirstTestClass"> </class> <class name="com.rationaleemotions.stackoverflow.qn45160355.SecondTestClass"> <parameter name="age" value="15"/> </class> </classes> </test> </suite> 这是输出 ... TestNG 6.11 by Cédric Beust ([email protected]) ... {names=Cedric, Julien} Name = Cedric Name = Julien Age = 15 =============================================== 45160355_Suite Total tests run: 3, Failures: 0, Skips: 0 =============================================== 虽然 Krishnan 建议的答案工作得很好,但有一种方法可以仅使用 TestNG xml 文件和 @Parameter 注释来完成此操作,而根本不使用 DataProvider。 它可能很笨重,特别是对于较大的项目,但它完全符合arctic_monkey 的要求,也许有人会发现它很有用。 您可以创建多个具有不同参数值的测试标签,但在每个标签中执行相同的测试: <suite name="Parameterized tests"> <test name="Login Tests one"> <parameter name="one"/> <classes> <class name="test.java.Login"/> </classes> </test> <test name="Login Tests two"> <parameter name="two"/> <classes> <class name="test.java.Login"/> </classes> </test> </suite> 您还可以在每个类标记中指示特定方法,以便不要多次运行整个套件,而只运行参数化方法: <suite name="Parameterized tests"> <test name="Login Tests one"> <parameter name="one"/> <classes> <class name="test.java.Login"> <methods> <include name="loginTest"/> </methods> </class> </classes> </test> <test name="Login Tests two"> <parameter name="two"/> <classes> <class name="test.java.Login"> <methods> <include name="loginTest"/> </methods> </class> </classes> </test> </suite>
Playwright 框架:有没有办法我们可以在 playwright 中执行依赖测试?
Playwright框架:有没有办法我们可以在playwright中执行依赖测试? 例如,我们使用 TestNg 注释来使用“取决于”方法,或者在 Selenium 中使用 Priority 注释
我将 TestNG 与 Spring 和 JPA 一起使用。到目前为止,我正在使用扩展 AbstractTransactionalTestNGSpringContextTests 的测试类来测试数据库内容。使用@TransactionConfiguration(
我正在尝试从下拉菜单中选择该选项。但它没有被选中。测试用例通过,没有任何错误,也没有选择该选项。因为它是 HTML 下拉菜单,所以我...
如何在测试控制台中查看输出?当我运行测试时,默认情况下输出会被测试摘要替换,并且各个测试的 System.outs 会丢失。
无法使用 Selenium WebDriver 在 HTML 日期选择器中设置日期
我在尝试使用 Selenium 在日期选择器中设置日期时遇到问题。日期选择器是用 实现的,我尝试通过单击日期输入框来模拟用户交互...
io.cucumber.testng.UndefinedStepException:“用户位于登录页面”步骤和其他 3 个步骤未定义
我正在做一门关于黄瓜的课程,并且一直在关注,但我也在那个项目中受到了打击,所以我创建了这个新项目来检查这是否有效,但它仍然是一样的。 我不知道...
公共类 ScreenshotUtility { 私有WebDriver驱动程序; 公共 ScreenshotUtility(WebDriver 驱动程序){ this.driver = 驱动程序; } @Attachment(value = "{0}&
我正在为我的 testng-selenium-java 项目使用 ExtentReports 和 ItestListener, 我的听众截取了 ExtentReports 失败测试用例的屏幕截图,但问题是我有多个