Automatische Ansteuerung von Smartphones innerhalb einer Testautomatisierung mit C Sharp

Ulm University

BA Abschlussvortrag, Yüksel Harun Madanoglu, Ort: O27/5202, Datum: 18.10.2019, Zeit: 11:30 Uhr

In dieser Abschlussarbeit geht es um die Entwicklung einer C Sharp Library und einer Cross-Platform App, die zusammen ermöglichen Smartphones automatisiert anzusteuern. Um Tickets zu reproduzieren in denen Smartphones vorkommen, muss ein Mitarbeiter immer anwesend sein und das Smartphone manuell bedienen. So kann man keine automatisierten Tests in einer Dauerschleife laufen lassen, ohne auf einen Mitarbeiter angewiesen zu sein. Diese C Sharp Library, in Kombination mit der Cross-Platform App, welche auf den Smartphones läuft, soll dazu benutzt werden Dauertests vollautomatisiert laufen zu lassen. Die App muss vorher mit Hilfe von mitgelieferten Tools auf den Smartphones installiert werden. Desweiteren muss die App von einem Nutzer nach der ersten Installation manuell gestartet und jede Erlaubnisanfrage akzeptiert werden. Dadurch hat die App z.B. die Erlaubnis auf die Kontaktliste zuzugreifen und diese auszulesen oder auch zu manipulieren. Wird die App geöffnet, so startet sie einen gRPC Server (Remote Procedure Call) , der mit vielen gängigen Sprachen angesteuert werden kann, darunter auch C Sharp. Die C Sharp Library ist dafür da, um die Kommunikation von Client (Windows PC) und Server (Smartphone App) zu erleichtern. Der Benutzer der Library muss lediglich ein Objekt instanziieren, den Transport öffnen und kann sofort
durch einige Interfaces wie z.B. IBluetooth Befehle ausführen. Beim erstmaligen Instanziieren des Objekts wird überprüft ob Android bzw iOS Smartphones verbunden sind. Ist das der Fall, so werden zuerst alle Android anschließend alle iOS Smartphones in einer Liste gesammelt. Wird beim Instanziieren kein Parameter mitgegeben, so ist das erste gefunde Smartphone das instanziierte Objekt. Falls mehrere Smartphones verbunden sind, kann man durch Mitgabe von einem Phone Parameter bestimmen, welches Smartphone das gerade instanziierte Objekt bedienen soll.