Automazione dei test delle applicazioni web utilizzando Selenium una soluzione comune tra gli sviluppatori di test automatici, e C# uno dei linguaggi di programmazione più popolari, quindi la combinazione di questi strumenti non solleva dubbi. Per lo sviluppo utilizzando queste tecnologie, spesso viene utilizzato un popolare software proprietario di Microsoft per Windows, ma ero curioso di sapere quali analoghi open source possono essere utilizzati senza allontanarsi dallo stack Selenium + C# per questo compito.
Poiché non ho trovato articoli in lingua russa su questo argomento, condividerò la mia esperienza nell'impostare l'ambiente per lo sviluppo e il debug dei test automatici in C# su Linux.
Come sistema operativo è stata utilizzata Kubuntu 18.04 64-bit con il kernel Linux 4.15.0-99-generic, installato da un'immagine ISO scaricata da . Credo che qualsiasi distribuzione Linux moderna e sufficientemente popolare sia adatta.
In qualità di CLR per C#, è stato utilizzato il compilatore JIT Mono versione 6.6.0.166. La sua installazione consisteva nel copiare e eseguire sequenzialmente i comandi nel terminale (in Kubuntu si tratta di Konsole) di .
E come IDE è stato utilizzato , installato in modo analogo a Mono.
Selenium supporta molti browser, ma per pigrizia ho limitato la mia scelta a Chrome‘, installando .
Successivamente, creiamo una soluzione in MonoDevelop:
- apriamo MonoDevelop
- andiamo nel menu "File"
- selezioniamo "Crea soluzione"
- facciamo clic su ".NET"
- selezioniamo "Progetto di libreria NUnit" e facciamo clic su "Avanti"
- indichiamo il nome e il percorso della soluzione, facciamo clic su "Crea"

Per gestire il browser serviranno anche un paio di pacchetti NuGet:
- andiamo nel menu "Progetto" e selezioniamo "Aggiungi pacchetti NuGet"
- cerchiamo e installiamo il pacchetto Selenium.WebDriver
- cerchiamo e installiamo il pacchetto Selenium.WebDriver.ChromeDriver

Ecco, in sostanza, è tutto, rimane solo da scrivere qualche riga di codice per verificare che tutto sia stato configurato correttamente. Quando crei la soluzione, viene automaticamente creato un file per i metodi di test Test.cs, nel quale ho inserito le seguenti righe di codice:
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"), "Qualcosa non va =(");
driver.Quit();
}
}
}L'esecuzione del test avviene dalla scheda "Test unitari", se non è visibile, andiamo nel menu "Visualizza" e selezioniamo "Test".

Automazione riuscita =)
Fonte: habr.com
