Вот структура моего класса:
package com.gex.base.helper;
public class InitializeDriver extends BrowserFactory
{
HashMap<String, String> authenticationMap;
@Factory(dataProvider="authentication", dataProviderClass=DataProviderList.class)
public InitializeDriver(String userName, String uPassword)
{
authenticationMap=new HashMap<String, String>();
authenticationMap.put("UserName", userName);
authenticationMap.put("Password", uPassword);
}
@BeforeTest
public void Gexlogin()
{
LoginPF objLogin=PageFactory.initElements(BrowserFactory.driver, LoginPF.class);
System.out.println("Logging into GEx");
objLogin.loginToDGEx(authenticationMap.get("UserName"), authenticationMap.get("Password"));
System.out.println("Successfully Logged into GEx");
}
@AfterTest
public void directLogout(){
// logout from application
LogoutPF objLogoutTest = PageFactory.initElements(BrowserFactory.driver, LogoutPF.class);
objLogoutTest.LogOffGEx();
extent.flush();
driver.close();
}
}
LoginToGEx - это функция в другом классе, например:
public void loginToGEx(String strUsername, String strPassword)
{
username.sendKeys(strUsername)
password.sendKeys(strPassword);
loginButton.click();
System.out.println("Successfully Logged into GEx");
}
DataProviderClass
public class DataProviderList {
@DataProvider(name="authentication")
public static Object[][] authentication()
{
return new Object[][] {
{"abc", "123"},
{"xyz", "456"},
};
}
}
В другом классе есть класс @Test, расширяющий класс InitializeDriver.
public class SampleTest extends InitializeDriver {
public SampleTest(String userName, String uPassword) {
super(userName, uPassword);
// TODO Auto-generated constructor stub
}
@Test
public void CreateNewEngTest() throws InterruptedException
{
test=extent.createTest("Eng Test","Create Eng Test");
-Code (which is working fine before using @Factory)-----------------------
Структура Testng.xml:
<suite name="Sample Project" verbose="1" >
<test name="Sample Test" group-by-instances="true" preserve-order="true">
<classes>
<class name="com.gex.base.testscripts.SampleTest" />
</classes>
</test>
</suite>
Мой вопрос: перед использованием @Factory с dataprovider - мои тесты работали нормально, но когда я использовал аннотацию @Factory, ничего не происходило .. В классе SampleTest этот конструктор создается сам по себе ... может быть, это вызываетпроблема.
public SampleTest(String userName, String uPassword) {
super(userName, uPassword);
// TODO Auto-generated constructor stub
}
Пожалуйста, объясните, как запускать тесты, используя @ Factory
Также еще 1 вещь , если я определяю фабричную аннотацию в моем сценарии @test, то каждый раз, когда яМне нужно войти в систему ... и у меня есть много тестовых случаев, и я хотел бы запустить вход в систему один раз, выполнить все сценарии @test, затем выйти из системы и начать заново с другим набором имени пользователя и пароля ... не каждый раз, когда запускается @test.Возможен ли этот сценарий?еще раз спасибо