Selenium 我们可以通过xls表中的优先级并启用TestNg测试吗?

Selenium 我们可以通过xls表中的优先级并启用TestNg测试吗?,selenium,testng,Selenium,Testng,我们已经创建了selenium测试用例,并使用TestNg框架来执行 我已经包括了优先级和启用以及@Test 但是团队希望他们希望有优先权,并从xls表中启用,以便于使用 我还没有看到任何TestNg支持这一点的博客 是否有人可以确认是否可以实现???到目前为止,在TestNG xml文件中不可能有优先级 2017年提出了一个问题。而所有者和合作者已决定对此不采取任何行动,即状态为不会修复。 您可以在本页查阅该问题: 目前,优先级仅在@Test中可用,保留顺序仅在xml中可用。 若优先级比保留顺

我们已经创建了selenium测试用例,并使用TestNg框架来执行

我已经包括了优先级和启用以及@Test

但是团队希望他们希望有优先权,并从xls表中启用,以便于使用

我还没有看到任何TestNg支持这一点的博客


是否有人可以确认是否可以实现???

到目前为止,在TestNG xml文件中不可能有优先级

2017年提出了一个问题。而所有者合作者已决定对此不采取任何行动,即状态为不会修复。

您可以在本页查阅该问题:

目前,优先级仅在
@Test
中可用,
保留顺序
仅在xml中可用。 若优先级比保留顺序更重要,那个么就不可能用xml覆盖顺序。
如果优先级不如保留顺序重要,则默认值必须更改为false,否则在使用xml时会中断优先级(可能会更高,但测试应快速突出显示它)。

到目前为止,在TestNG xml文件中不可能有优先级

2017年提出了一个问题。而所有者合作者已决定对此不采取任何行动,即状态为不会修复。

您可以在本页查阅该问题:

目前,优先级仅在
@Test
中可用,
保留顺序
仅在xml中可用。 若优先级比保留顺序更重要,那个么就不可能用xml覆盖顺序。
如果优先级不如保留顺序重要,则默认值必须更改为false,否则在使用xml时会中断优先级(可能更高,但测试应快速突出显示)。

是。很有可能通过excel电子表格控制优先级,并在此基础上分配相应的优先级。要做到这一点,您需要一个
org.testng.IAnnotationTransformer
实现,您可以通过testng套件xml文件连接到该实现中

以下是你可以做到这一点的方法

我使用的是:testng6.14.3,为了阅读csv(为了这个例子),我使用了这个库


com.opencsv
opencsv
3.3
下面是示例csv的外观

| class_name                                                     | method_name | priority | 
|----------------------------------------------------------------|-------------|----------| 
| com.rationaleemotions.stackoverflow.qn50998867.TestclassSample | first       | 1        | 
| com.rationaleemotions.stackoverflow.qn50998867.TestclassSample | second      | 2        | 
| com.rationaleemotions.stackoverflow.qn50998867.TestclassSample | third       | 3        | 
要应用优先级的示例测试类

package com.rationaliemotions.stackoverflow.qn50998867;
导入org.testng.annotations.Test;
公共类TestclassSample{
@试验
第二公共空间(){
系统错误println(“第二”);
}
@试验
首先公开无效(){
系统错误打印号(“第一”);
}
@试验
第三公共空间(){
系统错误打印号(“第三”);
}
}
以下是TestNG侦听器(
org.TestNG.IAnnotationTransformer
实现)的外观:

...
... TestNG 6.14.3 by Cédric Beust (cedric@beust.com)
...
first
second
third
PASSED: first
PASSED: second
PASSED: third

===============================================
    StackOverflow_50998867_test
    Tests run: 3, Failures: 0, Skips: 0
===============================================

===============================================
StackOverflow_50998867_suite
Total tests run: 3, Failures: 0, Skips: 0
===============================================
package com.rationaliemotions.stackoverflow.qn50998867;
导入com.opencsv.CSVReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.lang.reflect.Constructor;
导入java.lang.reflect.Method;
导入java.util.ArrayList;
导入java.util.List;
导入org.testng.IAnnotationTransformer;
导入org.testng.annotations.ITestAnnotation;
公共类PriorityTransformer实现了一个NotationTransformer{
私有布尔初始化=false;
私有列表信息=新的ArrayList();
私有void init(){
字符串file=System.getProperty(“file.location”,“src/test/resources/50998867.csv”);
试一试{
CSVReader reader=新CSVReader(新文件读取器(文件));
List allData=reader.readAll();
布尔值firstRow=true;
for(字符串[]每个:allData){
如果(第一行){
第一行=假;
继续;
}
添加(新的优先级信息(每个));
}
初始化=真;
}捕获(IOE异常){
抛出新的运行时异常(e);
}
}
@凌驾
公共空间转换(
ITestAnnotation注释、类clazz、构造函数、方法){
优先信息假人=
新的优先级信息(method.getDeclaringClass().getName(),method.getName());
如果(!已初始化){
init();
}
找到优先权信息=
info.stream()
.filter(优先级信息->优先级信息.equals(虚拟))
.findFirst()
.orElse(PriorityInformation.EMPTY);
if(find.equals(PriorityInformation.EMPTY)){
返回;
}
如果(信息包含(虚拟)){
annotation.setPriority(found.getPriority());
}
}
}
TestNG套件xml文件如下所示


以下是输出的样子:

...
... TestNG 6.14.3 by Cédric Beust (cedric@beust.com)
...
first
second
third
PASSED: first
PASSED: second
PASSED: third

===============================================
    StackOverflow_50998867_test
    Tests run: 3, Failures: 0, Skips: 0
===============================================

===============================================
StackOverflow_50998867_suite
Total tests run: 3, Failures: 0, Skips: 0
===============================================

对。很有可能通过excel电子表格控制优先级,并在此基础上分配相应的优先级。要做到这一点,您需要一个
org.testng.IAnnotationTransformer
实现,您可以通过testng套件xml文件连接到该实现中

以下是你可以做到这一点的方法

我使用的是:testng6.14.3,为了阅读csv(为了这个例子),我使用了这个库


com.opencsv
opencsv
3.3
下面是示例csv的外观

| class_name                                                     | method_name | priority | 
|----------------------------------------------------------------|-------------|----------| 
| com.rationaleemotions.stackoverflow.qn50998867.TestclassSample | first       | 1        | 
| com.rationaleemotions.stackoverflow.qn50998867.TestclassSample | second      | 2        | 
| com.rationaleemotions.stackoverflow.qn50998867.TestclassSample | third       | 3        | 
要应用优先级的示例测试类

package com.rationaliemotions.stackoverflow.qn50998867;
导入org.testng.annotations.Test;
公共类TestclassSample{
@试验
第二公共空间(){
系统错误println(“第二”);
}
@试验
首先公开无效(){
系统错误打印号(“第一”);
}
@试验
第三公共空间(){
系统错误打印号(“第三”);
}
}
以下是TestNG侦听器(
org.TestNG.IAnnotationTransformer
实现)的外观:

...
... TestNG 6.14.3 by Cédric Beust (cedric@beust.com)
...
first
second
third
PASSED: first
PASSED: second
PASSED: third

===============================================
    StackOverflow_50998867_test
    Tests run: 3, Failures: 0, Skips: 0
===============================================

===============================================
StackOverflow_50998867_suite
Total tests run: 3, Failures: 0, Skips: 0
===============================================
package com.rationaliemotions.stackoverflow.qn5099