生成Testng.xlm动态以运行测试

时间:2014-12-26 11:20:14

标签: java xml swing selenium-webdriver testng

我们正在使用testng在selenum进行测试自动化项目。我们已经完成了一半的自动化项目并成功运行。现在,我们必须添加新功能以使用多种测试方法创建测试流程。所以,为此,我必须创建java ui,它将显示为测试创建的所有方法,根据用户要求选择方法用于测试流程,现在当用户点击save或run按钮时我必须创建testng.xml将运行所选方法的测试的文件。

现在我的问题如下: 1.是否可以生成动态xlm文件? 2.在测试类中,我有多个依赖于其他类方法的方法,所以如果用户在ui上选择依赖方法我应该如何管理这些方法? 3.如何在ui上显示所有类中创建的方法来生成流? 4.调用bat文件来运行生成的流程是否合适?

我很感激您的意见。

谢谢, 卡里姆

3 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你需要生成将要测试的xml文件或类似的东西 for [xml](How to generate xml in Java?)或(Fastest and most efficient way to create XML) 所有你需要做的就是创建一个类似于XMLEncoder和XMLDecoder的类,使用bean。

答案 1 :(得分:1)

  1. 是否可以生成动态xlm文件?
  2. 是。我们这样做,我们从一个文本文件生成xml,该文件列出了他们想要运行的类。

    1. 在测试类中,我有多个依赖于其他类方法的方法,所以如果用户在ui上选择依赖方法我应该如何管理这些方法?
    2. 当用户自动选择方法时,您可以添加依赖方法,在这种情况下,您的代码需要具有依赖方法的映射。

      如何在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