Automatisierung des Testens von Webanwendungen mithilfe von Selenium eine gängige Lösung unter Autotest-Entwicklern und C# eine der beliebtesten Programmiersprachen, daher wirft die Kombination dieser Tools keine Fragen auf. Um mit diesen Technologien zu entwickeln, wird häufig beliebte proprietäre Software von Microsoft für Windows verwendet, aber ich wollte wissen, welche kostenlosen Analoga für diese Aufgabe verwendet werden können, ohne vom Selenium + C#-Stack abzuweichen.
Da ich zu diesem Thema keine russischsprachigen Artikel gefunden habe, teile ich meine Erfahrungen beim Einrichten einer Umgebung zum Entwickeln und Debuggen von Autotests in C# unter Linux.
Das verwendete Betriebssystem war Kubuntu 18.04 64-Bit mit Linux-Kernel 4.15.0-99-generic, installiert von einem ISO-Image, das von heruntergeladen wurde
Der Mono-JIT-Compiler Version 6.6.0.166 fungierte als CLR für C#. Die Installation bestand aus dem sequentiellen Kopieren und Ausführen von Befehlen in das Terminal (in Kubuntu ist dies Konsole) mit
Und als IDE verwendet
Selenium unterstützt viele Browser, aber ich war zu faul, mich um alles zu kümmern und habe mich darauf beschränkt Chrome'om, installiert
Als nächstes erstellen wir eine Lösung in MonoDevelop:
- Starten Sie MonoDevelop
- Gehen Sie zum Menü „Datei“.
- Wählen Sie „Lösung erstellen“
- Klicken Sie auf „.NET“
- Wählen Sie „NUnit Library Project“ und klicken Sie auf „Weiter“
- Geben Sie den Namen und den Pfad der Lösung an und klicken Sie auf „Erstellen“.
Um den Browser zu steuern, benötigen Sie außerdem einige NuGet-Pakete:
- Gehen Sie zum Menü „Projekt“ und wählen Sie „NuGet-Pakete hinzufügen“
- Suchen Sie nach dem Selenium.WebDriver-Paket und installieren Sie es
- Suchen Sie nach dem Paket Selenium.WebDriver.ChromeDriver und installieren Sie es
Das ist alles, es bleibt nur noch etwas Code zu schreiben, um zu überprüfen, ob alles so konfiguriert ist, wie es sollte. Beim Erstellen einer Lösung wird automatisch eine Datei für Testmethoden Test.cs erstellt, in die ich die folgenden paar Codezeilen eingefügt habe:
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();
}
}
}
Der Test wird über die Registerkarte „Unit Tests“ gestartet. Wenn er nicht angezeigt wird, gehen Sie zum Menü „Ansicht“ und wählen Sie „Test“.
Erfolgreiche Automatisierung =)
Source: habr.com