Automatización de pruebas de aplicaciones web utilizando Selenium es una solución común entre los desarrolladores de pruebas automatizadas, y C# es uno de los lenguajes de programación más populares, por lo que la combinación de estas herramientas no plantea dudas. Para el desarrollo utilizando estas tecnologías, a menudo se utiliza un popular software propietario de Microsoft para Windows, sin embargo, me interesaba saber qué alternativas libres se pueden usar sin alejarse del stack Selenium + C# para esta tarea.
Dado que no encontré artículos en ruso sobre este tema, compartiré mi experiencia en la configuración del entorno para el desarrollo y la depuración de pruebas automatizadas en C# en Linux.
Se utilizó como sistema operativo Kubuntu 18.04 de 64 bits con núcleo Linux 4.15.0-99-generic, instalado desde una imagen ISO descargada de . Supongo que cualquier distribución de Linux moderna y bastante popular sería adecuada.
El compilador JIT Mono para C# fue la versión 6.6.0.166. Su instalación consistió en copiar y ejecutar comandos en la terminal (en Kubuntu esto es Konsole) desde .
Y como IDE se utilizó , instalado de manera similar a Mono.
Selenium soporta múltiples navegadores, pero me dio pereza y me limité a Chrome’s, instalando .
A continuación, creamos una solución en MonoDevelop:
- abrimos MonoDevelop
- vamos al menú "Archivo"
- elegimos "Crear solución"
- hacemos clic en ".NET"
- elegimos "Proyecto de biblioteca NUnit" y hacemos clic en "Siguiente"
- especificamos el nombre y la ruta de la solución, hacemos clic en "Crear"

Para controlar el navegador, se necesitarán un par de paquetes NuGet más:
- vamos al menú "Proyecto" y elegimos "Agregar paquetes NuGet"
- buscamos e instalamos el paquete Selenium.WebDriver
- buscamos e instalamos el paquete Selenium.WebDriver.ChromeDriver

Eso es todo, queda escribir algún código para verificar que todo está configurado correctamente. Al crear la solución, se crea automáticamente un archivo para los métodos de prueba Test.cs, en el que coloqué las siguientes líneas 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 no está bien =(");
driver.Quit();
}
}
}La ejecución de la prueba se lleva a cabo desde la pestaña "Pruebas de módulo"; si no se muestra, vamos al menú "Ver" y elegimos "Prueba".

Automatización exitosa =)
Fuente: habr.com
