Selenium тСсты Π½Π° C# Π² Linux

Автоматизация тСстирования Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Selenium распространённоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² автотСстов, Π° C# ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных языков программирования, поэтому сочСтаниС этих инструмСнтов Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ вопросов. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с использованиСм этих Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ популярноС ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΎΠ΅ ПО ΠΎΡ‚ Microsoft для Windows, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ свободныС Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ отходя ΠΎΡ‚ стСка Selenium + C# для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ русскоязычных статСй Π½Π° эту Ρ‚Π΅ΠΌΡƒ я Π½Π΅ Π½Π°ΡˆΡ‘Π», Ρ‚ΠΎ подСлюсь своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ настройки срСды для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ автотСстов Π½Π° C# Π² Linux.

Π’ качСствС ОБ использовалась Kubuntu 18.04 64-bit с ядром Linux 4.15.0-99-generic, установлСнная с ISO-ΠΎΠ±Ρ€Π°Π·Π°, скачСнного с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта. Полагаю ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ любой соврСмСнный ΠΈ достаточно популярный дистрибутив Linux.

Π’ Ρ€ΠΎΠ»ΠΈ CLR для C# выступал Mono JIT компилятор вСрсии 6.6.0.166. Π•Π³ΠΎ установка Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»(Π² Kubuntu это Konsole) с этой страницы.

А Π² качСствС IDE использовался MonoDevelop 7.8.4 (build 2), установлСнный Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Mono.

Selenium ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π½ΠΎ всС ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ ΠΌΡƒΡ‡ΠΈΡ‚ΡŒ лСнь ΠΈ я ограничился Chrome’ом, установив 64-bit .deb ΠΏΠ°ΠΊΠ΅Ρ‚.

Π”Π°Π»Π΅Π΅ создаСм Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² MonoDevelop:

  • запускаСм MonoDevelop
  • Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² мСню Β«Π€Π°ΠΉΠ»Β»
  • Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Β»
  • Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«.NETΒ»
  • Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NUnitΒ» ΠΈ ΠΆΠΌΡ‘ΠΌ Β«Π”Π°Π»Π΅Π΅Β»
  • ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡƒΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΆΠΌΡ‘ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ»

Selenium тСсты Π½Π° C# Π² Linux

Для управлСния Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ Π΅Ρ‰Ρ‘ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² NuGet:

  • ΠΈΠ΄Ρ‘ΠΌ Π² мСню Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β» ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ NuGetΒ»
  • ΠΈΡ‰Π΅ΠΌ ΠΈ устанавливаСм ΠΏΠ°ΠΊΠ΅Ρ‚ Selenium.WebDriver
  • ΠΈΡ‰Π΅ΠΌ ΠΈ устанавливаСм ΠΏΠ°ΠΊΠ΅Ρ‚ Selenium.WebDriver.ChromeDriver

Selenium тСсты Π½Π° C# Π² Linux

Π’ΠΎΡ‚, собствСнно, ΠΈ всё, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всё Π½Π°ΡΡ‚Ρ€ΠΎΠΈΠ»ΠΎΡΡŒ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. ΠŸΡ€ΠΈ создании Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, автоматичСски создаётся Ρ„Π°ΠΉΠ» для тСстовых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² 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();
        }
    }
}

Запуск тСста осущСствляСтся ΠΈΠ· Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Β«ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты», Ссли ΠΎΠ½Π° Π½Π΅ отобраТаСтся, ΠΈΠ΄Π΅ΠΌ Π² мСню Β«ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΒ» ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ «ВСст».

Selenium тСсты Π½Π° C# Π² Linux

УспСшной Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ =)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com