Outomatisering van webtoepassingstoetsing met behulp van Selenium 'n algemene oplossing onder outotoets ontwikkelaars, en C# een van die gewildste programmeertale, so die kombinasie van hierdie instrumente laat geen vrae ontstaan nie. Om met behulp van hierdie tegnologieë te ontwikkel, word gewilde eie sagteware van Microsoft vir Windows dikwels gebruik, maar ek was geïnteresseerd om te weet watter gratis analoë gebruik kan word sonder om van die Selenium + C#-stapel vir hierdie taak af te wyk.
Aangesien ek geen Russiese-talige artikels oor hierdie onderwerp gevind het nie, sal ek my ervaring deel van die opstel van 'n omgewing vir die ontwikkeling en ontfouting van outotoetse in C# op Linux.
Die bedryfstelsel wat gebruik is, was Kubuntu 18.04 64-bis met Linux-kern 4.15.0-99-generies, geïnstalleer vanaf 'n ISO-beeld wat afgelaai is vanaf
Mono JIT samesteller weergawe 6.6.0.166 het opgetree as 'n CLR vir C#. Die installasie daarvan het bestaan uit die opeenvolgende kopiëring en uitvoering van opdragte in die terminale (in Kubuntu is dit Konsole) met
En gebruik as 'n IDE
Selenium ondersteun baie blaaiers, maar ek was te lui om met alles te steur en het myself daartoe beperk Chrome'om, nadat dit geïnstalleer is
Vervolgens skep ons 'n oplossing in MonoDevelop:
- begin MonoDevelop
- gaan na die "File"-kieslys
- kies "Skep oplossing"
- klik “.NET”
- kies "NUnit Library Project" en klik "Volgende"
- dui die naam en pad van die oplossing aan, klik "Skep"
Om die blaaier te beheer, sal jy ook 'n paar NuGet-pakkette benodig:
- gaan na die "Project"-kieslys en kies "Voeg NuGet-pakkette by"
- soek en installeer die Selenium.WebDriver-pakket
- soek en installeer die Selenium.WebDriver.ChromeDriver-pakket
Dit is al, al wat oorbly is om 'n kode te skryf om seker te maak dat alles gekonfigureer is soos dit moet. Wanneer 'n oplossing geskep word, word 'n lêer vir toetsmetodes Test.cs outomaties geskep, waarin ek die volgende paar reëls kode plaas:
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"), "Что-то не так =(");
driver.Quit();
}
}
}
Die toets word vanaf die "Eenheidtoetse"-oortjie geloods; as dit nie vertoon word nie, gaan na die "View"-kieslys en kies "Toets".
Suksesvolle outomatisering =)
Bron: will.com