Archiv der Kategorie: .NET

Die Assembly mit dem Anzeigenamen „mscorlib.XmlSerializers“ konnte im „LoadFrom“-Bindungskontext der AppDomain mit ID 1 nicht geladen werden.

BindingFailure occurred
Message: Managed Debugging Assistant 'BindingFailure' has detected a problem in 'D:\temp\StarTrack\QS\Utils\TestautomationTools\TestExecutor2\bin\Debug\TestautomationTool.vshost.exe'.
Additional information: Die Assembly mit dem Anzeigenamen "mscorlib.XmlSerializers" konnte im "LoadFrom"-Bindungskontext der AppDomain mit ID 1 nicht geladen werden. Fehlerursache: System.IO.FileNotFoundException: Die Datei oder Assembly "mscorlib.XmlSerializers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Diese Fehlermeldung tritt bei einem C#-Programm auf, welches Oberflächenelemente auf Windows scannt. Laut Stackoverflow kann man diese Fehlermeldung jedoch ignorieren.

HowTo: Appium-Testautomation auf einem Android-Emulator

Ich rate von Appium zur UI-Testautomatisierung von mobilen Apps ab. Man kann mit Appium sowohl Android Apps als auch überraschenderweise Windows Programme testen. Im Folgenden findet sich eine Anleitung zum Testautomatisieren von Android Apps auf einem Android Emulator (auf Rechner mit Windows-Betriebssystem).
Voraussetzungen

  • Android Studio mit eingerichtetem und gestartetem Android Emulator auf einem Windows-Computer
  • Runtergeladenes .apk file (dessen Name kein Leerzeichen enthalten darf), z.B. HelloCharts.

Step-By-Step-Anleitung
Die offizielle Anleitung ist einseits an manchen Stellen überfrachtet, an manchen Stellen aber auch lückenhaft, daher folgende Ergänzungshinweise:
Setup
@1: Erweitere die PATH-Variable um C:\Program Files\nodejs
@4: Nachdem die PATH-Variable um ‚C:\Program Files (x86)\Appium‘ erweitert wurde …
Additional Setup for Android App Testing
@1: Java-Home festlegen
@2:
Man findet den Android SDK path im Android Studio -> Tools -> Android -> SDK Manager -> Appearance & Behavior -> System Settings -> Android SDK im Textefeld neben ‚Android SDK Location‘. Bei mir lautet der Pfad: „C:\Users\michael\AppData\Local\Android\sdk“
Voraussetzung ist, dass die „Android SDK Platform-tools“ installiert sind (Android Studio -> Tools -> SDK Manager -> Appearance & Behavoir -> System Settings -> Android SDK -> Tab: ‚SDK Tools‘ -> ‚Android SDK Platform-Tools‘ anhaken und installieren.
@3/@4: diese beiden Build-Tools werden für diese Anleitung nicht benötigt, weshalb ich diese beiden Punkte überspringe.
@5:
Die Default-Einstellungen in Appium müssen erstmal nicht geändert werden.
Starte die Appium GUI und launche dort (Button rechts oben) den ‚Appium Node Server‘:
2016-11-03 13_37_09-Appium_ Kinderleichte Mobile App Testautomatisierung.
@6:
deviceName – zwar muss man diesen Wert setzen; sofern man nur einen Emulator auf dem Rechner laufen läßt, kann diese capability mit einem beliebigen Wert besetzt werden.
platformName lautet ‚Android‘
Die platformVersion auslesen: Im Android-Emulator ins Menü gehen, auf Settings klicken, dann ganz runter wischen und dann auf ‚About phone‘ klicken. Das was unter ‚android version‘ steht ist der richtige Wert für PlatformVersion.
app ist der Dateipfad zum zu launchenden .apk file
Mit folgendem Code kann man einen automatischen Test auf dem Android-Gerät ausführen:

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.SetCapability("deviceName", "USB-23c3caa8");
desiredCapabilities.SetCapability("platformName", "Android");
desiredCapabilities.SetCapability("platformVersion", "5.0.2");
desiredCapabilities.SetCapability("app", @"C:\Users\mlwowr\Downloads\HelloChartsSamples_v1.5.3_apkpure.com.apk");
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);

Einfacher C# Ranorex-Testcase zum mobilen Website-Testen

Dieser einfache Testcase demonstriert, wie Du mit Ranorex eine Website in einem Browser auf einem Android-Gerät testest.
Voraussetzungen:

  • Dein Android-Smartphone muss bei Ranorex angemeldet sein: Anleitung.
  • Damit das unten genannte Beispiel exakt wie angegeben läuft, muss das Smartphone als ‚USB-23c3caa8‘ angemeldet sein.
using Ranorex;
namespace TestcaseForMobileApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // `USB-23c3caa8` bezeichnet mein bei Ranorex angemeldete Android-Smartphone.
            // `ranorex.RxBrowser` ist die default AUT von Ranorex.
            Host.Local.RunMobileApp("USB-23c3caa8", "ranorex.RxBrowser", true);
            Ranorex.WebDocument webDocument = null;
            Host.Local.TryFindSingle("/mobileapp[@title='ranorex.RxBrowser']//dom", out webDocument);
            webDocument.Element.SetAttributeValue("PageUrl", "http://www.google.de");
            Ranorex.WebElement googleSearchField = null;
            Host.Local.TryFindSingle("/mobileapp[@title='ranorex.RxBrowser']//dom//input[#'lst-ib']", 90000, out googleSearchField); // 90000 milliseconds to wait for the element.
            googleSearchField.Element.SetAttributeValue("value", "Ranorex");
            Ranorex.WebElement googleSearchButton = null;
            Host.Local.TryFindSingle("/mobileapp[@title='ranorex.RxBrowser']//dom//button[@name='btnG']", 90000, out googleSearchButton); // 90000 milliseconds to wait for the element.
            googleSearchButton.Touch();
        }
    }
}