Posted on junho 14, 2020
Testes automatizados com C# e Selenium – parte 1
Quem nunca quis morrer por conta de um sistema legado, que atire a primeira pedra! Esse era exatamente o sentimento que eu tinha há algum tempo, com o atual sistema que trabalho. Ele é um senhorzinho que funciona muitíssimo bem, mas que aos poucos está sendo atualizado e, junto com isso, veio a oportunidade de aplicar alguns testes automatizados nele.
Mas é claro que nada é tão simples assim…
Por conta da maneira que ele estava desenvolvido, a única automação de teste possível seria com o Selenium – ou seja, desenvolver um projeto de testes que simulasse o usuário utilizando o sistema e suas inúmeras possibilidades de fluxos. Já é alguma coisa, não?
Eu nunca tinha trabalhado com o Selenium puro, somente com o SpecFlow, que eu vejo como uma ferramenta facilitadora: ele faz com que seja mais fácil incluir a gerência no processo de desenvolvimento de casos de teste, por exemplo.
Dada essa introdução, vim fazer um mini-tutorial (em partes) de como fazer seu primeiro teste automatizado com Selenium e C#!
⚠️ Aqui, não tenho nenhum sistema o qual eu poderia mostrar para vocês. Então, vou criar um projeto de teste solo mesmo, e testar algo bem básico (ele mesmo, o Google). Também vou utilizar somente conhecimentos que estão dentro da minha alçada, ou seja: .NET Framework e IEDriver como navegador para o Selenium.
Criando seu projeto de teste
Vamos lá! Abra seu Visual Studio e vá em File > New > Project (Arquivo > Novo > Projeto)¹.
Dentro da janela que abriu de New Project (Novo Projeto), dentro do menu ao lado esquerdo, vá até a opção Visual C# > Test (Teste) e vamos escolher a opção Unit Test Project (.NET Framework) (Projeto de Teste Unitário (.NET Framework)). Aqui, vou usar o .NET Framework 4.6.1.
⚠️ Não se esqueça de colocar um nome para o seu projeto (eu usei TesteAutomatizadoSelenium) e escolher um caminho apropriado para ele.
Depois de criada a sua solução e seu projeto, o Visual Studio já vai abrir para você a classe de teste criada automaticamente, prontinha para você sair codando. Mas tudo ao seu tempo, pequeno Padawan. Precisamos instalar o Selenium antes de mais nada.
Instalando o Selenium via NuGet
Clique com o botão direito no projeto dentro do Solution Explorer (Explorador de Soluções) e selecione a opção Manage NuGet Packages… (Gerenciar Pacotes do NuGet…).
Uma nova aba vai ser aberta no seu Visual Studio, mostrando quais pacotes já estão instalados no seu projeto – por enquanto, só o MSTest.TestAdapter e o MSTest.TestFramework. E é aqui que vamos ver o Selenium mais tarde.
Vamos até a aba Browse (Navegar) dentro do NuGet e buscar pelo seguinte pacote: Selenium.WebDriver. Ele vai ser o primeiro a aparecer e, alguns pacotes abaixo, também vai aparecer outro que também precisaremos, o Selenium.Support.
Taca-le pau nos pacotinhos, Marcos! Só clicar em Install (Instalar). Vai aparecer uma popup e é só confirmar através do OK.
Quase toda a configuração pronta! Falta só um detalhezinho…
Baixando e configurando o driver do InternetExplorer
⚠️ Como eu disse lá em cima, vou mostrar aqui a maneira que eu implementei e que eu sei fazer. Eu ACHO que esse passo relacionado ao IE pode sim ser melhorado, embora eu não saiba como (e não tive muito tempo para pesquisar sobre, também). Caso você descubra, fique à vontade para me contar! 😅
Como aqui vamos usar o Internet Explorer, precisamos baixar o IEDriverServer, que é um servidorzinho que implementa os protocolos do WebDriver. É ele que vai fazer nosso navegador “funcionar” para que o usuário programado por nós possa navegar pelo site. Você pode baixar o IEDriverServer aqui. Eu estou usando a versão 3.14, 32 bits (nome do arquivo: IEDriverServer_Win32_3.14.0.zip).
E para configurá-lo, vamos começar a escrever código! Vou mostrar a forma que eu prefiro fazer, que é com um arquivo App.config. Vamos criá-lo!
Clique com o botão direito no seu projeto de testes, vá até a opção Add > New Item… (Adicionar > Novo Item…). Dentro da janela que vai se abrir, procure pelo item Application Configuration File (Arquivo de Configuração de Aplicação). Pode deixar o nome padrão mesmo e selecione Add (Adicionar).
O arquivo vai ser criado já com a tag <configuration>. Dentro dela, preciso que você coloque o seguinte:
<appSettings> <add key="URLDriverIE" value="Caminho_Onde_Esta_Seu_IEDriverServer" /> </appSettings>
E, obviamente, corrija o valor da chave que você acabou de adicionar. Eu aconselho colocar o seu IEDriverServer na pasta do seu projeto, preferencialmente dentro da bin, mas fica à seu critério.
🙋 Mas Olivia do céu, por que criar esse App.Config? Não dava para colocar direto no código? Não ia facilitar minha vida?
👩💻 Até iria, num primeiro momento. Mas pensa comigo: se você precisar mudar esse endereço, você vai precisar recompilar o projeto. Deixando no App.Config, você pode mudar lá e ta-da, problema resolvido mais fácil!
A próxima etapa é, de fato, escrever o seu teste e rodá-lo. E, como esse post já ficou XIGANTE, vou deixá-lo para a parte 2! Espero que tenham gostado até agora!
EDIT: Publiquei a parte dois! ✌️
EDIT 2: Deixei em um repositório do GitHub o projeto completo! Ele engloba as partes 1 e 2 desse tutorial, assim como o tutorial de testes de carga!
¹ Meu Visual Studio está em inglês e estou traduzindo no freestyle.
Pingback: Criando testes de carga no Visual Studio (com Selenium) – Olivia Mattiazzo
Pingback: Testes automatizados com C# e Selenium – parte 2 – Olivia Mattiazzo