Я использую селен для автоматизации тестов в веб-системе.
Структура, в которой я себя нахожу, следующая. У меня есть два пакета, внутри каждого пакета я помещаю страницу и тест, например:
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());
}
}