Automatização de testes de aplicativos da web usando Selenium uma solução comum entre desenvolvedores de testes automatizados, e C# uma das linguagens de programação mais populares, portanto, a combinação dessas ferramentas não causa estranheza. Para o desenvolvimento com essas tecnologias, geralmente é usado um software proprietário popular da Microsoft para Windows, no entanto, fiquei curioso para saber quais alternativas gratuitas podem ser usadas sem sair do stack Selenium + C# para essa tarefa.
Como não encontrei artigos em russo sobre este assunto, vou compartilhar minha experiência na configuração do ambiente para o desenvolvimento e depuração de testes automatizados em C# no Linux.
O sistema operacional utilizado foi Kubuntu 18.04 64-bit com núcleo Linux 4.15.0-99-generic, instalado a partir de uma imagem ISO baixada de . Acredito que qualquer distribuição Linux moderna e suficientemente popular servirá.
O CLR para C# foi o compilador JIT Mono na versão 6.6.0.166. Sua instalação envolveu a cópia sequencial e execução de comandos no terminal (no Kubuntu, isso é o Konsole) a partir de .
E como IDE foi utilizado , instalado da mesma maneira que o Mono.
O Selenium suporta vários navegadores, mas como eu estava com preguiça de testar todos, fiquei limitado ao Chromepara instalar o .
Em seguida, criamos uma solução no MonoDevelop:
- abrimos o MonoDevelop
- vamos ao menu 'Arquivo'
- selecionamos 'Criar solução'
- clicamos em '.NET'
- escolhemos 'Projeto de biblioteca NUnit' e clicamos em 'Próximo'
- especificamos o nome e o caminho da solução, clicamos em 'Criar'

Para controlar o navegador, será necessário instalar alguns pacotes NuGet:
- vamos ao menu 'Projeto' e escolhemos 'Adicionar pacotes NuGet'
- procuramos e instalamos o pacote Selenium.WebDriver
- procuramos e instalamos o pacote Selenium.WebDriver.ChromeDriver

E é isso, só resta escrever algum código para verificar se tudo foi configurado corretamente. Ao criar a solução, um arquivo para os métodos de teste Test.cs é gerado automaticamente, e nele coloquei as seguintes linhas de código:
using NUnit.Framework;
using System;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
namespace SeleniumTests
{
[TestFixture()]
public class Test
{
[Test()]
public void TestCase()
{
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://habr.com/");
Assert.IsTrue(driver.Url.Contains("habr.com"), "Algo está errado =(");
driver.Quit();
}
}
}A execução do teste é feita na aba 'Testes de Módulo'; se ela não aparecer, vamos ao menu 'Visualizar' e escolhemos 'Teste'.

Automação bem-sucedida =)
Fonte: habr.com
