Avtomatizacija testiranja spletnih aplikacij s pomočjo Selenium je razširjena rešitev med razvijalci avtomatskega testiranja, in C# je eden izmed najbolj priljubljenih programskih jezikov, zato kombinacija teh orodij ne dviguje vprašanj. Za razvoj s temi tehnologijami se pogosto uporablja priljubljena proprietary programska oprema podjetja Microsoft za Windows, vendar me je zanimalo, katera prosta alternativa se lahko uporablja, ne da bi se oddaljevali od sklada Selenium + C# za to nalogo.
Ker nisem našel slovanskih člankov na to temo, bom delil svoje izkušnje pri nastavitvi okolja za razvoj in odpravljanje napak avtomatskih testov v C# na Linuxu.
Kot operacijski sistem sem uporabil Kubuntu 18.04 64-bit s jedrom Linux 4.15.0-99-generic, nameščenega iz ISO-podobe, prenesene s . Menim, da bi ustrezal katerikoli sodoben in dovolj priljubljen Linux distribucijski.
V vlogi CLR za C# je deloval Mono JIT prevajalnik različice 6.6.0.166. Njegova namestitev je potekala s zaporednim kopiranjem in izvajanjem ukazov v terminalu (v Kubuntu je to Konsole) s .
Kot IDE je bil uporabljen , nameščen na podoben način kot Mono.
Selenium podpira številne brskalnike, a jaz sem se omejil na Chrome'em, nameščenjem .
Nato ustvarimo rešitev v MonoDevelop:
- zaženemo MonoDevelop
- pridemo v meni 'Datoteka'
- izberemo 'Ustvari rešitev'
- pritisnemo '.NET'
- izberemo 'Projektna knjižnica NUnit' in kliknemo 'Naprej'
- določimo ime in pot rešitve, kliknemo 'Ustvari'

Za upravljanje z brskalnikom bo potrebno še nekaj paketov NuGet:
- gremo v meni 'Projekt' in izberemo 'Dodaj pakete NuGet'
- iskimo in namestimo paket Selenium.WebDriver
- iskimo in namestimo paket Selenium.WebDriver.ChromeDriver

Torej, to je to, ostalo je le še napisati nekaj kode, da preverimo, ali je vse nastavljeno pravilno. Pri ustvarjanju rešitve se samodejno ustvari datoteka za testne metode Test.cs, v katero sem dodal nekaj vrstic kode:
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"), "Nekaj ni v redu =(");
driver.Quit();
}
}
}Zagon testa se izvede iz zavihka 'Modularni testi', če ta ni prikazan, gremo v meni 'Poglej' in izberemo 'Test'.

Uspešna avtomatizacija =)
Izvor: habr.com
