簡體   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