Webalkalmazások tesztelésének automatizálása a Selenium automatikus tesztelők között népszerű megoldás, és C# az egyik legnépszerűbb programozási nyelv, ezért e technológiák kombinációja nem okoz meglepetést. Ezen technológiák használatához általában a Microsoft népszerű, zárt forráskódú szoftverét használják Windows alatt, azonban engem érdekelt, hogy milyen nyílt forráskódú alternatívákat használhatok a Selenium + C# stack mellett ehhez a feladathoz.
Mivel orosz nyelvű cikkeket nem találtam erről a témáról, megosztom a tapasztalataimat a C# automatikus tesztelés fejlesztési és hibakeresési környezetének beállításáról Linux alatt.
Az operációs rendszer Kubuntu 18.04 64-bites Linux 4.15.0-99-generic kernellel volt, amely ISO képről lett telepítve, amit innen töltöttem le . Azt hiszem, bármely modern és elég népszerű Linux disztribúció megfelelne.
A C# CLR szerepét a Mono JIT fordító 6.6.0.166-os verziója tölti be. A telepítés a terminálban (Kubuntu alatt Konsole) történő parancsok másolásával és végrehajtásával zajlott .
IDE-ként pedig a használatát ajánlom, amelyet hasonlóan telepítettem a Monoval.
A Selenium számos böngészőt támogat, de engem már annyira fárasztott a dolog, hogy csak ChromeChrome-aléletet válaszottam, és telepítettem .
Ezután hozzunk létre egy megoldást a MonoDevelopban:
- elindítjuk a MonoDevelopot,
- belépünk a Fájl menübe,
- választjuk az Új megoldás lehetőséget,
- kattintsunk a .NET-re,
- válasszuk a NUnit könyvtár projektet, majd kattintsunk a Tovább gombra,
- megjegyezzük a megoldás nevét és elérési útját, majd kattintsunk a Létrehozásra,

A böngésző kezeléséhez még szükség lesz pár NuGet csomagra:
- íme a Projekt menübe, és válaszd a NuGet csomagok hozzáadása lehetőséget,
- keressük meg és telepítsük a Selenium.WebDriver csomagot,
- keressük meg és telepítsük a Selenium.WebDriver.ChromeDriver csomagot.

Nos, ennyi, már csak annyit kell írnunk, hogy ellenőrizzük, minden úgy van beállítva, ahogy kell. A megoldás során automatikusan létrejön egy fájl a tesztmetódusok számára, a Test.cs, ebbe az alábbi pár kódsort helyeztem el:
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"), "Valami nem stimmel =(");
driver.Quit();
}
}
}A teszt futtatása a "Moduláris tesztek" fülből történik, ha az nem látható, lépjünk a "Nézet" menübe, és válasszunk a "Teszt" lehetőséget.

Sikeres automatizálás =)
Forrás: habr.com
