Automazione dei test per applicazioni web tramite Selenium una soluzione comune tra gli sviluppatori di test automatici, ed C# è uno dei linguaggi di programmazione più popolari, quindi la combinazione di questi strumenti è comprensibile. Per sviluppare utilizzando queste tecnologie, spesso si utilizza un noto software proprietario di Microsoft per Windows; tuttavia, ero curioso di sapere quali alternative open-source potevano essere utilizzate rimanendo nell'ambito di Selenium + C# per questo compito.
Poiché non ho trovato articoli in lingua russa su questo argomento, condividerò la mia esperienza nell'impostazione dell'ambiente per lo sviluppo e il debug di test automatici su C# in Linux.
Come sistema operativo ho utilizzato Kubuntu 18.04 a 64 bit con il kernel Linux 4.15.0-99-generic, installato da un'immagine ISO scaricata da . Penso che qualunque distribuzione Linux moderna e abbastanza popolare andrà bene.
Il CLR per C# era rappresentato dal compilatore JIT Mono versione 6.6.0.166. La sua installazione consisteva in una serie di comandi copiati e incollati nel terminale (in Kubuntu si usa Konsole) eseguiti da .
E come IDE è stato utilizzato , installato in modo simile a Mono.
Selenium supporta diversi browser, ma per pigrizia mi sono limitato a Chromeinstallarlo .
Dopo creiamo una soluzione in MonoDevelop:
- avviamo MonoDevelop
- andiamo al menu 'File'
- selezioniamo 'Crea soluzione'
- clicchiamo su '.NET'
- selezioniamo 'Progetto libreria NUnit' e premiamo 'Avanti'
- indichiamo il nome e il percorso della soluzione, clicchiamo su 'Crea'

Per gestire il browser, avremo bisogno di un paio di pacchetti NuGet:
- andiamo al 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; resta solo da scrivere qualche codice per verificare che tutto sia configurato correttamente. Quando si crea la soluzione, viene automaticamente creato un file per i metodi di test Test.cs, in cui 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();
}
}
}Il test viene avviato dalla scheda «Test modulari», se non è visibile, andiamo nel menu «Visualizza» e selezioniamo «Test».

Automazione riuscita =)
Fonte: habr.com
