繁体   English   中英

如何基于外部输入运行Junit / TestNG测试?

[英]How to run Junit / TestNG tests based on an external input?

我有一个Excel文件,用于存储测试用例名称/ ID。

现在,如果我的测试用例名称(在excel中)以'test'开头,我想执行我的Junit / TestNG测试之一。 如果我的测试用例名称(在excel中)以“ check”开头,则我想执行另一个Junit / TestNG测试。 同样,我想基于Excel中的Ids执行不同的测试。

我将如何做到这一点? 可以请一个例子举个例子,对我有很大的帮助。

谢谢,迈克

我认为您想要做的是根据您的Excel工作表动态构建测试。 这就是您可以以编程方式运行testng的方式。

您需要做的是从Excel中读取信息,创建XmlClass并根据方法的测试名称设置xmlclass的方法。 将xmlclass添加到XmlSuite。 因此,基本上,您是在运行时根据excel中的测试用例名称生成一个动态套件。

您正在寻找的是一种叫做反射的东西。 在xml中,您将具有要运行的类和方法的名称。 然后,在Java中,您将使用反射来获取类,并遍历方法以确定是否与您想要的匹配。 反射通常不是一种有效的处理方式,但出于测试目的,它可以执行您想要的操作。

一个例子是

for(Method method : this.getClass().getMethods()){
{
    if(method.getName().equals(name)){
         method.invoke();
    }
}

有关详细信息,请阅读http://docs.oracle.com/javase/tutorial/reflect/class/index.html

我使用testNG做过类似的事情。 我的要求是运行用户将从测试用例列表中选择的测试用例。 我使用的是Jenkins而不是excel表,以便用户从列表中选择测试用例。 逻辑也可能对您有用。 就这个:

我没有弄清楚要运行哪种方法,而是为所有测试用例指定了唯一的测试组名称。 该组名称应与excel工作表中的名称相同。 唯一需要的逻辑是创建testng.xml以使用输入组名称运行测试。 这可以使用testNG对象或通过使用dom4j或类似的东西创建tesNG.xml来完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM