TestNG - когда вы вызываете метод get (), прежде чем запускать тест, он фиксирует значение переменной на веб-странице. - PullRequest
0 голосов
/ 30 марта 2020

Я использую селен для автоматизации тестов в веб-системе.

Структура, в которой я себя нахожу, следующая. У меня есть два пакета, внутри каждого пакета я помещаю страницу и тест, например:

Package1

- CadastroPage

- TestCadastro

Package2

- PesquisaPage

- TestPesquisa

В TestCadastro у меня есть несколько тестов. Теперь мне нужно выполнить определенный тест c в TestCadastro, и в определенный момент на веб-странице я хочу извлечь фрагмент данных, который находится на экране, и записать его в переменную, я создал его как (private static String numeroPedido =" ";). Так что в TestPesquisa я использую метод getNumeroPedido (), который находится в TestCadastro для извлечения этого значения.

Для того, что я исследовал, есть аннотация @AfterTest и @BeforeTest .. но из нескольких примеров, которые есть в Документацию я не смог ни копировать. Может ли кто-нибудь привести пример, как это сделать?

Коды:

TestCadastro. java

Здесь мне нужно запустить test04_validaEtapa4, чтобы getNumeroPedido () не передает "", но текст с номером заказа

public class TestCadastro extends TestBase {
    private CadastroPage pageCadastro;
    private static String numeroPedido = "";

    //QUAL ANOTACAO EU COLOCO AQUI PARA RODAR APÓS test04_validaEtapa4()
    //@After?
    //precisaria usar um @After especifico do metodo
    public static String getNumeroPedido(){
        CadastroPage pageCadastro = new CadastroPage();
        return numeroPedido;
    }

    @BeforeMethod
    @Override
    public void afterStart() {
        pageCadastro = new CadastroPage();
        pageCadastro.visitar();
    }

    @Severity(SeverityLevel.BLOCKER)
    @Test
    public void test01_validaEtapa1() {

    }

    @Severity(SeverityLevel.BLOCKER)
    @Test
    public void test02_validaEtapa2() {
        test01_validaEtapa1();

    }

    @Severity(SeverityLevel.BLOCKER)
    @Test
    public void test03_validaEtapa3() {
        test02_validaEtapa2(); //executa o teste 2 pra chegar na aba da etapa 3

    }

    @Severity(SeverityLevel.BLOCKER)
    @Test
    public String test04_validaEtapa4() {
        test03_validaEtapa3();
        numeroPedido = getElementByXPath("//span[@style='color: #26a911']").getText();

    }
}

TestPesquisa

Здесь я вызываю метод getNumeroPedido ()

public class TestPesquisa extends TestBase {
    private PesquisaPage pagePesquisa;

    @BeforeMethod
    @Override
    public void afterStart() {
        pagePesquisa = new PesquisaPage();
        pagePesquisa.visitar();
    }

    @Severity(SeverityLevel.BLOCKER)
    @Test
    public void test01_pesquisaPorCodPedido() {
        pagePesquisa.setInputByName("idPedido", TestCadastro.getNumeroPedido());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...