Automatisation des tests d'applications web avec Selenium est une solution répandue parmi les développeurs de tests automatisés, et C# est l'un des langages de programmation les plus populaires, donc la combinaison de ces outils ne soulève pas de questions. Pour le développement utilisant ces technologies, le logiciel propriétaire populaire de Microsoft pour Windows est souvent utilisé, mais j'étais curieux de savoir quels équivalents libres pouvaient être utilisés sans s'écarter de la pile Selenium + C# pour cette tâche.
Comme je n'ai trouvé aucun article en russe sur ce sujet, je vais partager mon expérience de configuration d'un environnement de développement et de débogage de tests automatisés en C# sous Linux.
Comme système d'exploitation, j'ai utilisé Kubuntu 18.04 64 bits avec le noyau Linux 4.15.0-99-generic, installé à partir d'une image ISO téléchargée sur . Je suppose que toute distribution Linux moderne et assez populaire conviendrait.
En tant que CLR pour C#, j'ai utilisé le compilateur JIT Mono version 6.6.0.166. Son installation consistait à copier séquentiellement et exécuter des commandes dans le terminal (dans Kubuntu, c'est Konsole) depuis .
Et en tant qu'IDE, j'ai utilisé , installé de la même manière que Mono.
Selenium prend en charge de nombreux navigateurs, mais j'étais trop paresseux pour m'en occuper, donc je me suis limité à ChromeChromium, installé .
Ensuite, créons un projet dans MonoDevelop :
- lancer MonoDevelop
- aller dans le menu « Fichier »
- choisir « Créer un projet »
- cliquer sur « .NET »
- choisir « Projet de bibliothèque NUnit » et cliquer sur « Suivant »
- indiquer le nom et le chemin du projet, cliquer sur « Créer »

Pour contrôler le navigateur, nous aurons encore besoin de quelques paquets NuGet :
- aller dans le menu « Projet » et choisir « Ajouter des paquets NuGet »
- chercher et installer le paquet Selenium.WebDriver
- chercher et installer le paquet Selenium.WebDriver.ChromeDriver

Voilà, il ne reste plus qu'à écrire quelques lignes de code pour vérifier que tout est configuré correctement. Lors de la création du projet, un fichier pour les méthodes de test Test.cs est automatiquement créé, où j'ai mis les quelques lignes de code suivantes :
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"), "Quelque chose ne va pas =(");
driver.Quit();
}
}
}L'exécution du test se fait depuis l'onglet « Tests unitaires », s'il n'est pas affiché, allez dans le menu « Afficher » et choisissez « Test ».

Automatisation réussie =)
Source : habr.com
