README.md 5.13 KB

TESTING - REGRESSION

SARI-Admin Build Status

SARI-Common Build Status

PORTAL Build Status

VALIDATOR Build Status

Geckodriver versions: https://github.com/mozilla/geckodriver/releases

Exemplo de classe de testes:

Data Provider a partir de ficheiro csv ou excel

Foi adicionada a possibilidade de introduzir urls a partir de um ficheiro csv ou excel Estes estão na pasta TestNGResources: provider.csv ou provider.xls. Para inclui, adicionar ao teste (exemplos):

@Test(dataProvider = "csv", dataProviderClass = CustomDataProvider.class)

ou

@Test(dataProvider = "excel-sari", dataProviderClass = CustomDataProvider.class)

Ver na classe CustomDataProvider os tipos existentes.

  • A vantagem é que apenas é necessário mexer no ficheiro excel ou csv para os URL a testar. Nestes ficheiros, se pretendermos que um URL não seja executado, coloca-se N na coluna run
  • Também é possível adicionar mais URLs e, no fichiro xls adicionar outros Sheets. Contudo, se não existir na classe CustomDataProvider, tem de se adicionar a esta.

Com dataprovider (urls no código da classe java)

package testng.rcaap.validator;

import static org.testng.Assert.assertTrue;
import org.openqa.selenium.By;
import org.testng.annotations.Test;
import dataproviders.DataProviderPortalValidartor;
import testng.rcaap.TestBase;

public class VerifyContactTest extends TestBase{

    @Test(dataProvider = "validators-url", dataProviderClass = DataProviderPortalValidartor.class)
    public void testVerifyContact(String baseUrl) throws Exception {
        driver.get(baseUrl + "/validator2/");
        driver.findElement(By.xpath("//a[contains(@href, 'contact')]")).click();
        driver.findElement(By.id("name")).clear();
        driver.findElement(By.id("name")).sendKeys("USER");
        driver.findElement(By.id("email")).clear();
        driver.findElement(By.id("email")).sendKeys("user@mailf.pt");
        driver.findElement(By.id("message")).clear();
        driver.findElement(By.id("message")).sendKeys("TESTE");
        assertTrue(isElementPresent(By.cssSelector("button.btn.btn-primary")));
     }
 }

Sem data provider

package testng.rcaap.validator;
import static org.testng.Assert.assertTrue;
import org.openqa.selenium.By;
import org.testng.annotations.Test;
import dataproviders.DataProviderPortalValidartor;
import testng.rcaap.TestBase;

public class VerifyContactTest extends TestBase{

  @Test
  public void testVerifyContact() throws Exception {
        driver.get(baseUrl + "/validator2/");
        driver.findElement(By.xpath("//a[contains(@href, 'contact')]")).click();
        driver.findElement(By.id("name")).clear();
        driver.findElement(By.id("name")).sendKeys("NOME");
        driver.findElement(By.id("email")).clear();
        driver.findElement(By.id("email")).sendKeys("user@mailf.pt");
        driver.findElement(By.id("message")).clear();
        driver.findElement(By.id("message")).sendKeys("TESTE");
        assertTrue(isElementPresent(By.cssSelector("button.btn.btn-primary")));
  }
}
  • Ver os ficheiros suite como estão definidos para os testes
  • O dataprovider tem os urls a testar
  • Ver a documentação da Wiki com outras informações

Parâmetros para teste com linha de comandos:

mvn test -Dsuitefile=SUITEFILE -DbaseURL=URL -Duser=USER -Dpass=PASS -Dbrowser=BROWSER -Dos=OS -Dtest=CLASSNAME#METHOD+METHOD2,CLASSNAME
  • o -Dsuite deve ser definido, mesmo que se corrar o -Dtest (neste caso indicar um suite qulaquer) SUITFILE Exemplo: TestNGResources/Portal/....xml
  • o -DbaseURL (exemplo http://rcaap.pt - Não esquecer o http ou https caso seja https o site) deve ser dado caso não se defina um dataprovider. Caso seja indicado o URL o dataprovider sobrepõe-se
  • o -Duser/–Dpass só devem ser definidos caso haja login
  • o -Dtest será usado se definido. Adicionar as classes a testar separadas por vírgulas e os métodos a testar com um +
  • o -Dbrowser: (firefox, chrome ou htmlunit (headless neste caso) ). Default Firefox
  • o -Dos: windows ou linux. Default windows

Exemplo:

mvn test -Dsuitefile=testng.xml -DbaseURL=http://teste.pt -Dteste=Login,TestMenu#testA+testC

Correr testes com Login (SARI)

Para correr os testes de Login no SARI, ou adicionar o LoginAdmin no testecase em 1.º lugar, ou extender o LoginAdmin na classe teste, ou a classe de teste contemplar o login. Para o caso de correr com o LoginAdmin

mvn test [...] -Dtest=LoginAdmin,CLASSNAME#METHOD+METHOD2,CLASSNAME
  • Mais informações no documento da Wiki