Автоматизиране на тестването на уеб приложения с Селен общоприето решение сред разработчиците на автотест, и C# един от най-популярните езици за програмиране, така че комбинацията от тези инструменти не повдига въпроси. За разработка с помощта на тези технологии често се използва популярен патентован софтуер от Microsoft за Windows, но ми беше интересно да знам какви безплатни аналози могат да се използват, без да се излиза от стека Selenium + C# за тази задача.
Тъй като не намерих статии на руски език по тази тема, ще споделя опита си в създаването на среда за разработване и отстраняване на грешки в автотестове в C# на Linux.
Операционната система беше Kubuntu 18.04 64-bit с Linux ядро 4.15.0-99-generic, инсталирано от ISO изображението, изтеглено от
CLR за C# беше Mono JIT компилатор версия 6.6.0.166. Инсталирането му се състоеше в последователно копиране и изпълнение на команди към терминала (в Kubuntu това е Konsole) с
И като IDE се използва
Selenium поддържа много браузъри, но бях твърде мързелив и се ограничих до Chromeом, настройка
След това създаваме решение в MonoDevelop:
- стартирайте MonoDevelop
- отидете в менюто "Файл".
- изберете „Създаване на решение“
- щракнете върху ".NET"
- изберете "NUnit Library Project" и щракнете върху "Next"
- посочете името и пътя на решението, щракнете върху „Създаване“
За да управлявате браузъра, ще ви трябват и няколко пакета NuGet:
- отидете в менюто „Проект“ и изберете „Добавяне на NuGet пакети“
- потърсете и инсталирайте пакета Selenium.WebDriver
- потърсете и инсталирайте пакета Selenium.WebDriver.ChromeDriver
Това всъщност е всичко, остава да напишем някакъв код, за да проверим дали всичко е настроено както трябва. Когато създавате решение, автоматично се създава файл за тестови методи Test.cs, в който поставям следните няколко реда код:
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();
}
}
}
Тестът се стартира от раздела "Unit Tests", ако не се показва отидете в менюто "View" и изберете "Test".
Успешна автоматизация =)
Източник: www.habr.com