Колдонуу менен веб-тиркеме тестирлөө автоматташтыруу селен автотест иштеп чыгуучулар арасында жалпы чечим, жана C# эң популярдуу программалоо тилдеринин бири, ошондуктан бул куралдардын айкалышы эч кандай суроолорду жаратпайт. Бул технологияларды колдонуу менен иштеп чыгуу үчүн Windows үчүн Microsoftтун популярдуу проприетардык программалык камсыздоосу көп колдонулат, бирок мен бул тапшырма үчүн Selenium + C# стекинен чыкпастан кандай акысыз аналогдорду колдонсо болорун билгим келди.
Мен бул темада орус тилиндеги макалаларды таба албагандыктан, Linux'та C# тилинде автотесттерди иштеп чыгуу жана мүчүлүштүктөрдү оңдоо чөйрөсүн түзүү боюнча тажрыйбам менен бөлүшөм.
Колдонулган ОС Kubuntu 18.04 64-бит, Linux ядросу 4.15.0-99-генерикалык, жүктөлүп алынган ISO сүрөтүнөн орнотулган.
Mono JIT компиляторунун 6.6.0.166 версиясы C# үчүн CLR катары иштеген. Анын орнотулушу командаларды ырааттуу түрдө терминалга көчүрүү жана аткаруудан турган (Kubuntu-да бул Konsole).
Жана IDE катары колдонулат
Selenium көптөгөн браузерлерди колдойт, бирок мен баары менен убара болгонго жалкоо болуп, өзүм менен чектелип калгам Chrome'Ом, орнотуп койдум
Андан кийин, биз MonoDevelop ичинде чечим түзөбүз:
- MonoDevelop ишке киргизиңиз
- "Файл" менюсуна өтүңүз
- "Чечимди түзүү" тандоо
- ".NET" чыкылдатуу
- "NUnit Library Project" тандап, "Кийинки" баскычын чыкылдатыңыз
- чечимдин атын жана жолун көрсөтүп, "Түзүү" баскычын чыкылдатыңыз
Браузерди башкаруу үчүн сизге бир нече 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();
}
}
}
Сыноо "Бирдиктин тесттери" өтмөгүнөн ишке киргизилет, эгер ал көрсөтүлбөсө, "Көрүү" менюсуна өтүп, "Тестти" тандаңыз.
Ийгиликтүү автоматташтыруу =)
Source: www.habr.com