2017-05-18 50 views
0

我需要使用主題讀取電子郵件並將值設置爲3個不同場景中的運行時間。如何在運行時獲取不同的參數值?

  1. 執行觸發一封電子郵件,主題爲@Test在CSV文件中給出的操作 - class1.java
  2. 執行觸發與主題的電子郵件中@參數的功能被賦予一個操作 - class2.java
  3. 主題值直接從屬性文件 - selenium.properties中讀取。

我可以從class1和屬性文件中讀取主題內容。現在,我想讀取從XML文件傳遞的@Parameter值。

下面是我目前的代碼。

//Reads Subject from properties file. 
if(subject==null||subject.isEmpty()) {  
    //Reads Subject from given CSV file. 
    reader = new CSVReader(new FileReader(fileName), CoreConstants.CSV_FILE_SEPARATOR, CoreConstants.DEFAULT_QUOTE_CHARACTER, CoreConstants.CSV_SKIP_HEADER_LINE); 
    if((record = reader.readNext()) != null) { 
     subject = record[18];     
    } 
} 

的Class1 & 2包含@Test方法,上執行時,它們觸發郵件。但是,上面的方法是在不包含@Test註解的助手類中。

請幫我在方案2

回答

0

基本上,答案是在給定的閱讀主體的價值testng docs

如果使用簡單值的參數,你可以指定它們的testng.xml:

@Parameters({ "first-name" }) 
@Test 
public void testSingleString(String firstName) { 
    System.out.println("Invoked testString " + firstName); 
    assert "Cedric".equals(firstName); 
} 

在此代碼中,我們指定您的Java方法的參數firstName應該接收名爲first-name的XML參數的值。此XML參數在testng.xml中定義:

<suite name="My suite"> 
    <parameter name="first-name" value="Cedric"/> 
    <test name="Simple example"> 
    <-- ... --> 
+0

謝謝!! ...但讀取電子郵件的方法未用@Test註釋。我編輯了我的問題以清楚地表達。 – Bala

+0

@Bala'@ Test'方法可以將期望的參數傳遞給你的utils方法。 – juherr

相關問題