2015-01-07 8 views
0
package com.xchanging.selenium.testcases.testng; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.HashMap; 

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 

import com.xchanging.selenium.utility.CaptureScreenShot; 
import com.xchanging.selenium.utility.ClearText; 
import com.xchanging.selenium.utility.ClickEvent; 
import com.xchanging.selenium.utility.GlobalVariables; 
import com.xchanging.selenium.utility.ReadRows; 
import com.xchanging.selenium.utility.SelectCheckBox; 
import com.xchanging.selenium.utility.SelectDropDown; 
import com.xchanging.selenium.utility.Text; 
import com.xchanging.selenium.utility.VerifyText; 

public class RegisterAccount extends GlobalVariables { 

    @Test(dataProvider = "getData") 
    public static void register() throws IOException { 
     ClickEvent.clickAt("createAccount_xpath"); 
     Text.enterText("username_name", "username"); 
     Text.enterText("password_name", "machans"); 
     Text.enterText("confirmPassword_name", "machans"); 
     ClickEvent.clickAt("securityquestion_name"); 
     SelectDropDown.select("securityquestion_name", "petname"); 
     Text.enterText("securityanswer_xpath", "vsbhss"); 
     Text.enterText("fullName_name", "Chandrasekaran"); 
     Text.enterText("email_name", "[email protected]"); 
     ClearText.clear("dob_name"); 
     Text.enterText("dob_name", "11/11/1982"); 
     SelectDropDown.select("gender_name", 1); 
     SelectDropDown.select("marital_name", 1); 
     SelectDropDown.select("country_name", "India"); 
     SelectCheckBox.selectchkbox("checkbox_xpath"); 
     ClickEvent.clickAt("register_xpath"); 
     VerifyText.verify("Congratulations.. You have registered successfully"); 
     VerifyText.verify("Login now"); 
     CaptureScreenShot.screenshot("Registration_Successful"); 
     ClickEvent.clickAt("closebutton_xpath"); 
    } 

    @DataProvider 
    public ArrayList<HashMap> getData() throws IOException { 
     ArrayList<HashMap> table = ReadRows.readExcel("Sheet1"); 
     return table; 
    } 
} 

Теперь я хотел использовать этот DataProvider и получать значения из xls и использовать его в моей части @Test.Как использовать @DataProvider в TestNG

Может ли кто-нибудь помочь?

Если я использую, так он работает нормально ..

ArrayList<HashMap> table = ReadRows.readExcel("Sheet1"); 
table.get(0).get("email") 

Но я хотел использовать @DataProvider ..

ответ

-1

Если вы хотите использовать dataProvider аннотацию. Аннотированный метод должен возвращать Object[][], где каждому объекту [] может быть назначен список параметров метода тестирования.

Вы можете попробовать что-то вроде этого:

@DataProvider 
public Object[][] getData() throws IOException { 
    Object[][] data = new Object[3][2] // based on the size of your excel rows & cols. 
    // Write the code to read data from excel and store. 
    data[][] = //your Code. 
    return data; 
} 

И ваш тестовый метод может использовать данные.

//Lets say your Object[][] data returns 2 arguments. 
@Test(dataProvider="getData") 
public void testMethod(firstArgument, secondArgument){ 
    // your code to use the arguments supplied by data. 
} 
+0

У меня есть этот метод ReadRows.readExcel ("Sheet1"); чтобы извлечь лист excel. Может ли какая-то логика взять значения из этого? – ChanGan

+0

, пожалуйста, обратитесь к URL-адресу ниже. http://poi.apache.org/spreadsheet/quick-guide.html – Paras

+0

Я уже использовал эту логику, и я могу извлечь данные с помощью ReadRows.readExcel («Sheet1») .. ТОЛЬКО вещь, как настроить его для использования в DataProvider – ChanGan

0

Некоторые Как удалось ..

Это решает мою проблему.

Смежные вопросы