【问题标题】:Generate Testng.xlm dynamic to run test生成 Testng.xlm 动态运行测试
【发布时间】:2014-12-26 11:20:14
【问题描述】:

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

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

非常感谢您的意见。

谢谢, 卡里姆

【问题讨论】:

    标签: java xml swing selenium-webdriver testng


    【解决方案1】:
    1. 是否可以生成动态xlm文件?

    是的。我们这样做,我们从一个列出了他们想要运行的类的文本文件中生成 xml。

    1. 在测试类中,我有多个方法依赖于类的其他方法,所以如果用户在 ui 上选择依赖的方法,我应该如何管理这些方法?

    当用户自动选择方法时,您可以添加依赖方法,在这种情况下,您的代码将需要具有依赖方法的映射。

    如何在 ui 上显示所有类中创建的方法以生成流? 4. 调用bat文件运行生成的流程好不好? - 这部分我没看懂。

    【讨论】:

    • 如何在 ui 上显示所有类中创建的方法以生成流?- 我们有多个类,它们具有测试方法,如 testmethod1()、testmethod2()、testmethod3()。我想在我将创建的 GUI 上显示此方法,以便我的经理或客户只需要选择他们想要测试的测试方法。
    • 如果你的测试类正在实现 iTestClass 你可以检查一下 -> testng.org/javadocs/org/testng/ITestClass.html ,有很多方法,你可以使用 getTestMethods() 来获取所有的测试方法。检查一下。
    • 您好,感谢您的宝贵意见,根据您的回答,我用谷歌搜索并找到了解决方案,好吧,我无法在此处跳过代码,但可以看到答案...非常感谢
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-27
        • 2018-06-19
        • 1970-01-01
        • 2021-01-02
        • 2011-07-31
        相关资源
        最近更新 更多