我们正在使用testng在selenum进行测试自动化项目。我们已经完成了一半的自动化项目并成功运行。现在,我们必须添加新功能以使用多种测试方法创建测试流程。所以,为此,我必须创建java ui,它将显示为测试创建的所有方法,根据用户要求选择方法用于测试流程,现在当用户点击save或run按钮时我必须创建testng.xml将运行所选方法的测试的文件。
现在我的问题如下: 1.是否可以生成动态xlm文件? 2.在测试类中,我有多个依赖于其他类方法的方法,所以如果用户在ui上选择依赖方法我应该如何管理这些方法? 3.如何在ui上显示所有类中创建的方法来生成流? 4.调用bat文件来运行生成的流程是否合适?
我很感激您的意见。
谢谢, 卡里姆
答案 0 :(得分:1)
如果我理解你的问题,你需要生成将要测试的xml文件或类似的东西 for [xml](How to generate xml in Java?)或(Fastest and most efficient way to create XML) 所有你需要做的就是创建一个类似于XMLEncoder和XMLDecoder的类,使用bean。
答案 1 :(得分:1)
是。我们这样做,我们从一个文本文件生成xml,该文件列出了他们想要运行的类。
当用户自动选择方法时,您可以添加依赖方法,在这种情况下,您的代码需要具有依赖方法的映射。
如何在ui上显示所有类的创建方法以生成流? 4.调用bat文件来运行生成的流程是否合适? - 我不明白这一部分。
答案 2 :(得分:1)
Using below code you can get all the method with @Test annotation....
---
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Set;
import org.testng.IAnnotationTransformer;
import org.testng.annotations.ITestAnnotation;
import org.testng.annotations.Test;
import org.testng.internal.ClassHelper;
import org.testng.internal.annotations.AnnotationHelper;
import org.testng.internal.annotations.IAnnotationFinder;
import org.testng.internal.annotations.JDK15AnnotationFinder;
public class FindTestMethodsInTestClass {
public static void main(String[] args) {
IAnnotationFinder finder = new JDK15AnnotationFinder(new DummyTransformer());
Set<Method> allMethods = ClassHelper.getAvailableMethods(MyFirstTestClass.class);
for (Method eachMethod : allMethods) {
ITestAnnotation value = AnnotationHelper.findTest(finder, eachMethod);
if (value != null) {
System.out.println(eachMethod.getName() + " is a test method");
} else {
System.out.println(eachMethod.getName() + " is NOT a test method");
}
}
}
public static class DummyTransformer implements IAnnotationTransformer {
@SuppressWarnings("rawtypes")
@Override
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor,
Method testMethod) {
}
}
public static class MyFirstTestClass {
public void foobar() {
}
@Test
public void foo() {
}
@Test
public void bar() {
}
}
}
上述代码的引用来自:https://groups.google.com/forum/#!topic/testng-users/WbR2kxpT-7o