Выполнение тестов Selenium один за другим без повторного запуска браузера через testng - PullRequest
0 голосов
/ 16 июня 2020

У меня есть два тестовых примера, которые нужно выполнить 1. войти в приложение 2. Выполните некоторые операции

Ниже представлен дизайн моего кода: BaseTest. java

public abstract class BaseTest {

    public WebDriver driver;

    @BeforeSuite
    public void openApplication() {
        System.setProperty(chrome_key,chrome_value);
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--disable-notifications");
        driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get(url);
    }
}

LoginPage. java

public class LoginPage extends BasePage{
    @FindBy (xpath = "//input[@id='username']")
    WebElement userName;

    @FindBy (xpath = "//input[@id='password']")
    WebElement password;    
    public LoginPage(WebDriver driver) {
        super(driver);
        PageFactory.initElements(driver, this);
    }

    public void loginToApp(String username, String pwd) {

    }
}

Аккаунт. java:

public class NewAccount extends BasePage{
    @FindBy(xpath = "//span[text()='Accounts']/../..")
    WebElement accountsTab;

    public NewAccount(WebDriver driver) {
        super(driver);
        PageFactory.initElements(driver, this);
    }

    public void createNewAccount() {    
    }
}

LoginToApp. java:

public class LoginToApp extends BaseTest {
    @Test
    public void a_verifyLogin() throws IOException {
        LoginPage hp = new LoginPage(driver);
        hp.loginToApp(username, password);
    }
}

CreateAccount. java:

public class CreateAccount extends BaseTest {
    @Test
    public void b_createAccountRecord() {
        NewAccount na = new NewAccount(driver);
        na.createNewAccount();
    }
}

тест xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test name="Test">
    <classes>
      <class name="com.testcases.LoginToApp"/>
      <class name="com.testcases.CreateAccount"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

С этой структурой фреймворка, когда я выполняю файл testng. xml, первый тест в LoginToApp выполняется должным образом. И когда элемент управления поступает на проверку в CreateAccount, драйвер становится пустым и, следовательно, не выполняет второй тест.

Ожидаемый поток: 1. инициализировать браузер 2.Запустите URL-адрес 3. Выполните метод @Test для LoginToApp. java 4. Выполните метод @Test CreateAccount. java

Можно ли достичь указанного выше потока, не делая WebDriver как stati c? Если да, объясните, пожалуйста.

1 Ответ

0 голосов
/ 19 июня 2020
1.Initialise Browser  (set this under before method)
2.Launch the url      (give priority =0)
3.Execute the @Test method of LoginToApp.java  (give priority =1)
4.Execute the @Test method of CreateAccount.java( give depends on method )

depends on method only execute if your loginapp test successfully run 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...