Skip to content

AnselmeWebTest é uma solução desenvolvida em .NET Core 3.1 utilizando Selenium com todos os drivers. Focada em reduzir a quantidade de código nos testes, funciona bem com AngularJS ou outras tecnologias. Inclui diversos testes reais para ajudar qualquer pessoa que deseje automatizar testes de interface.

License

Notifications You must be signed in to change notification settings

Anselming/Anselme.Webtest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 Anselme.Webtest

Anselme.Webtest é uma solução de testes automatizados em .NET Core 3.1 utilizando Selenium WebDriver e o padrão Page Object, uma das abordagens mais recomendadas para criação de testes de interface. Este projeto foi pensado para reduzir linhas de código, aumentar a legibilidade e facilitar a manutenção dos testes — especialmente em aplicações como SPAs (Single Page Applications), incluindo aquelas feitas com AngularJS.


🧠 Sobre o padrão Page Object

O padrão Page Object foi descrito por Martin Fowler e é amplamente adotado na automação de testes de UI. A ideia central é encapsular a lógica de interação com elementos da página em classes que representam páginas ou componentes da aplicação, expondo apenas métodos de alto nível que descrevem comportamentos do usuário.

🎯 Vantagens do Page Object

  • Separação de responsabilidades: o teste foca no comportamento, a classe Page Object foca na interface.
  • Redução de duplicidade: evita repetição de seletores e ações.
  • Maior legibilidade: os testes se tornam mais fáceis de ler e entender.
  • Alta manutenção: alterações na interface exigem mudança apenas na classe Page correspondente.
  • Facilidade de reuso: páginas/componentes podem ser reutilizados em múltiplos testes.

🔧 Exemplo conceitual:

// LoginPage.cs
public class LoginPage
{
    private readonly IWebDriver _driver;

    public LoginPage(IWebDriver driver) => _driver = driver;

    public void FillUsername(string username) =>
        _driver.FindElement(By.Id("username")).SendKeys(username);

    public void FillPassword(string password) =>
        _driver.FindElement(By.Id("password")).SendKeys(password);

    public void Submit() =>
        _driver.FindElement(By.Id("login-button")).Click();
}
// LoginTest.cs
[Test]
public void ShouldLoginWithValidCredentials()
{
    var loginPage = new LoginPage(driver);
    loginPage.FillUsername("admin");
    loginPage.FillPassword("123456");
    loginPage.Submit();

    Assert.IsTrue(driver.PageSource.Contains("Welcome"));
}

⚙️ Tecnologias Utilizadas


🚀 Como Executar

  1. Clone o repositório:
    git clone https://github.com/Anselming/Anselme.Webtest.git
  2. Restaure os pacotes NuGet:
    dotnet restore
  3. Execute os testes:
    dotnet test

🧩 Estrutura esperada

AnselmeWebtest/
├── Pages/
│   └── LoginPage.cs
├── Tests/
│   └── LoginTests.cs
├── Drivers/
│   └── WebDriverFactory.cs
└── Anselme.Webtest.sln

📄 Licença

Este projeto está licenciado sob a MIT License.


Desenvolvido por @Anselming com foco em testes robustos, reutilizáveis e de fácil manutenção.

About

AnselmeWebTest é uma solução desenvolvida em .NET Core 3.1 utilizando Selenium com todos os drivers. Focada em reduzir a quantidade de código nos testes, funciona bem com AngularJS ou outras tecnologias. Inclui diversos testes reais para ajudar qualquer pessoa que deseje automatizar testes de interface.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages