问题标签 [testng-dataprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
799 浏览

selenium - 如何使 1 个特定数据的测试用例失败并继续在 TestNG 中执行相同的脚本

我有一个要为“n”个数据运行的测试脚本,我正在这样做@DataProvider,现在我的问题是当我使用"Assert"失败的测试用例时测试失败 1 个特定数据,然后执行整个测试脚本停止。我希望它即使在 1 个数据失败时也能继续执行。我该怎么做 ?有人可以帮忙吗?谢谢 !!

0 投票
1 回答
810 浏览

multithreading - TestNG 中的 @BeforeClass 不与 parallel = 实例并行执行

我有一个 testng 工厂创建具有单个 @Test 方法的测试实例。在 testng.xml 中指定“parallel=instances”和 thread-count =“10”,我希望 @BeforeClass 并行执行。而我看到其他线程的@BeforeClass 在执行时被阻塞,直到当前的@BeforeClass 执行完成。即按顺序打印“In Before Class”,延迟 2 秒。

我在这里想念什么?

这是我的测试代码 -

0 投票
0 回答
30 浏览

java - DataProvider TestNG 在一台机器上运行,但不在另一台机器上运行

我正在尝试使用 DataProvider (TestNG - Selenium Java) 对两个不同的凭据用户执行相同的测试步骤。我是一个用户,我们称另一个用户为“Bob”。

Bob 能够在他的机器上运行完全相同的代码,但我无法在我的机器上运行完全相同的代码。

我们有相同的 Selenium-Java (2.44.0) 和 TestNG (6.8.13) 版本。

这是代码。因为相同的代码会被两个不同的执行User Type,我们需要使用dataProvider来运行代码。

测试日志结果不同:

鲍勃的机器:

话题一:打开火狐浏览器话题一:进入类:profileTest 话题一:进入方法:profileTest

我的机器:

线程#1:打开Firefox浏览器线程#1:进入类:profileTest 线程#1:准备存在类:profileTest 线程#1:退出类:profileTest java.lang.ExceptionInInitializerError

引起:com.webtest.exception.TestException:用户名是强制性的

为什么代码在 Bob 的机器上运行,而不是我的?

我还需要检查什么以确保 Bob 和我真的拥有相同的系统?

0 投票
1 回答
315 浏览

java - 一起使用 Data Provider 和 TextNG XML

我不知道如何TestNG XML与 Excel 表中的数据提供者集成。

我已经确认我的代码数据提供程序语法是正确的,因为当我从测试级别运行它时,我的测试成功运行(见下文)

Excel 数据提供程序屏幕截图

但是,当我尝试使用TestNG XML配置实现数据提供程序时(我试图在多个浏览器上运行用户名和密码),我得到一个 Java IOException 并且(因为这些可能非常模糊)我不知道如何继续。

请参阅下面包含的屏幕截图,其中包含在 before 方法中实现参数的相同测试设置以及TestNG XML.

谢谢你的帮助!

testng.xml 屏幕截图 1

testng.xml 屏幕截图 2

0 投票
1 回答
484 浏览

testing - 如何在@DataProvider 方法中检索@Test 方法参数?

我想在 DataProvider 方法中检索 Test 方法的参数名称。通过method.getParameterTypes()在 DataProvider 中使用,我可以获得在 Test 方法中传递的参数类,但我想要名称。

这是必需的,因为使用这些名称我可以从我的 Excel 文件中获取数据

0 投票
1 回答
1519 浏览

java - 在 testng 中使用不同的数据提供者运行相同的测试

例如:

  • 数据提供者 1:dataA
  • 数据提供者2:dataB、dataC
  • 数据提供者 3:dataD、dataE、dataG

所以我的测试需要一个数据提供者。但我希望它根据测试组为不同的测试类型选择不同的数据提供者。例如,如果我正在运行组“smoke”,那么我想使用数据提供者 1,如果我正在运行组“sanity”,那么我想运行数据提供者 1 和数据提供者 2,如果我正在运行组“回归”那么我希望它运行数据提供者 1、2 和 3。

这可能吗?如果是这样,请您提供信息或指向我的文档或可以提供帮助的东西。

目前我的工作是为每个组进行 3 次不同的测试,然后我可以选择要使用的数据提供者。我也可以结合数据提供者。

我解决的问题是所有 3 个测试都完全相同,不同的是组和数据提供者。

谢谢!

0 投票
1 回答
400 浏览

testng - 使用 @factory 运行依赖 testng 方法

设想:-

我的测试数据是 1) 字符串 A 2) 字符串 B 3) 字符串 C

现在我有一个类,其中我有数据提供者和工厂,并且数据提供者有 3 个值作为字符串

我想要的输出

A
HelloA
BYEA
YESA
B
HelloB
BYEB
YESB
C
HelloC
BYEC
YESC

0 投票
1 回答
721 浏览

selenium - TestNG 工厂按顺序运行测试类

我有一个 TestNG @Factory 类,一个创建驱动程序的基类和两个包含多个 @Test 方法来运行测试的测试类。给定我下面的@Factory 课程。

IndTestIndTest2是两个测试类。它们扩展基类并调用基类构造函数来创建驱动程序。对于特定的 deviceID,在特定时间只能使用驱动程序的一个实例。

我面临的问题是 IndTest 和 IndTest2 都在同时运行,测试尝试同时在特定设备上运行不同的测试。我要求首先调用 IndTest 类并在设备 1 和设备 2 上运行该类内的测试,然后移动到 IndTest2 并执行相同类型的执行。下面是我目前使用的 TestNG xml。

等待你的想法:)

0 投票
1 回答
820 浏览

selenium-webdriver - 在 selenium 中执行 Testng 时出现此错误

数据提供者public java.lang.Object[] as.get()必须返回Object[][]or Iterator<Object>[],而不是类java.lang.Object;

0 投票
1 回答
827 浏览

java - 我在 testng 方法中有一个 testng 类,通过反射调用另一个方法它无法登录 testng 报告

代码示例:

Test1 类将是一个父类,负责执行 Test2 类方法

导入 java.lang.reflect.InvocationTargetException;导入java.lang.reflect.Method;

导入 org.testng.annotations.Test;

公共类Test1 {

}

Test2.class 代码:

导入 org.testng.Assert;

公共类Test2 {

这里根据这个例子,断言应该失败,但 testng 报告状态为通过 那么我如何将断言失败链接到 testng 报告