Es ist wirklich schwierig, jemanden zu rekrutieren, der das Testen jetzt automatisieren kann ~ Sie können das Testen mit einem Hammer automatisieren

Es ist wirklich schwierig, jemanden zu rekrutieren, der das Testen automatisieren kann~

Vor einiger Zeit plante das Unternehmen, zwei automatisierte Tester für den Posten einzustellen.Meine Kollegen interviewten mehr als ein Dutzend Kandidaten und stellten ein sehr seltsames Phänomen fest.Wenn sie während des Interviews Fragen zu Framework API und Scripting stellten, im Grunde Jeder im Internet kann fließend antworten. Wenn sie nach aktuellen Kampfprojekten gefragt werden, wenn Fragen wie „ wie würden Sie einen Plan entwerfen,Lassen Sie sich automatisiertes Testen fördern“ und „Wie baut man ein automatisiertes Testsystem von 0 auf

Danach habe ich diese Angelegenheit auch mit meinen Kollegen diskutiert und war mir einig, dass das Hauptproblem darin besteht, dass es zu viele Kanäle gibt, um Automatisierungstests zu lernen, wie viel Automatisierungswissen, viele Automatisierungsneulinge schauen es sich nur an.Verschieben der Fachbegriffe und Terminologie Von den beiden Augen zu meinem Lebenslauf habe ich das Gefühl, dass ich alle Kenntnisse des automatisierten Testens vollständig beherrsche, sodass die Interviewanforderungen im Allgemeinen nicht hoch sind.

Aber tatsächlich ist „wird automatisieren“ = „kann automatisierte Testarbeit leisten“?

nicht

Wenn es keine spezifische Projektpraxis auf Unternehmensebene gibt, wissen Sie nicht, wie Sie die Projektanforderungen abbauen können? Wie baut man ein automatisiertes Testsystem von 0 auf 1 auf? Und wie vermeidet man die Fallstricke im Prozess der Automatisierungsimplementierung?

Schließlich gibt es noch zu wenig Erfahrung im automatisierten Praxisbetrieb und keine automatisierte Prüfprozessspezifikation als Referenz.
Nachdem ich mehrere Jahre lang automatisiertes Testen betrieben habe, dachte ich plötzlich an dieses Problem, fasste meine Lernerfahrungen zusammen, die Gruben, auf die ich getreten bin, und führte einige eingehende Gespräche mit Ihnen.

Zweifel beiseite schieben, nur akademische Diskussionen führen~

Lassen wir alle Zweifel beiseite, wie z. B. was nützt die Automatisierung? Kann Automatisierung die Effizienz wirklich verbessern? Nachdem ich erfahren habe, wie stark Automatisierungslöhne steigen können usw., werde ich die oben genannten Themen, die ebenfalls häufig diskutiert werden, nicht weiter diskutieren.

Als Antwort auf die oben genannten Probleme habe ich grob zusammengefasst: Die Technologie, die die Löhne erhöhen und mehr Geld verdienen kann, ist es wert, erlernt zu werden! Jetzt, wo sich die Automatisierung so weit entwickelt hat, hat sie natürlich ihren Wert.

Die meisten manuellen Tests denken nicht weiter als die folgenden Fragen:

1. Ist es schwierig, automatisiertes Testen zu lernen?
2. Können automatisierte Tests durchgeführt werden, ohne Code zu lernen/auszuschalten?
3. Wie lassen sich Tests automatisieren?
4. In welche Richtung gehen automatisierte Lerntests? Zuerst UI-Automatisierung lernen? Oder Schnittstellenautomatisierung? Aber App-Automatisierung ist auch beliebt? Oder eine andere kleine Programmautomatisierung?
5. Ich habe kein bisschen Coding-Grundlage und mache jeden Tag ein bisschen bei der Arbeit, melde mich für Schulungen an oder lerne im Selbststudium?
6. Welche Programmiersprache muss ich lernen? Python oder Java
… usw. usw

Lassen Sie mich meine Gedanken zu den oben genannten Themen teilen:

Zunächst einmal ist automatisiertes Testen nicht schwer zu erlernen! ! Aber denken Sie daran, dass Sie sich über die Lernrichtung im Klaren sein müssen und keine Umwege gehen und Ihre Energie verschwenden dürfen.

Zweitens ist es natürlich möglich, automatisierte Tests durchzuführen, ohne Code zu schreiben, aber es ist ein bisschen schwierig. Mein persönlicher Vorschlag ist, eine Programmiersprache zu lernen. Was die zu lernende Sprache betrifft, ist es sehr einfach. Wählen Sie Python, weil der Mainstream Jetzt kommt die automatisierte Testsprache auf dem Markt zum Einsatz, Python natürlich, Java kommt nicht in Frage.

Drittens müssen Sie wissen, welche Sprache Ihr Unternehmen für die Entwicklung verwendet.Die Verwendung derselben Sprache für Tests und Entwicklung kann die Kommunikationsbarrieren zwischen Ihnen und der Entwicklung verringern, während Sie Automatisierung lernen, und Ihr Mitspracherecht im Unternehmen erhöhen.

Viertens , die Richtung der Automatisierung des Lernens? Ich schlage vor: Web-UI-Automatisierung > Schnittstellenautomatisierung > APP-Automatisierung/Kleinprogrammautomatisierung Konzentrieren Sie sich natürlich auf die Lernschnittstellenautomatisierung und die UI-Automatisierung, aber es besteht keine Notwendigkeit, sich damit zu befassen.

Fünftens : Selbststudium oder Schulungen? Das hängt von der Person ab.Wenn Sie das Gefühl haben, dass Sie eine starke Lern- und Verständnisfähigkeit haben, selbstdiszipliniert sind und Ihre Lernrichtung klar ist, können Sie natürlich auch alleine studieren.Schließlich das Geld Sie Save ist in der eigenen Tasche?

Wenn Sie kein Verständnis für Automatisierung oder einige Programmiersprachen haben und niemand in Ihrer Nähe ist, der Sie jederzeit zum Lernen mitnehmen kann, ist die Suche nach einer guten Schulungseinrichtung definitiv eine Möglichkeit, sich schnell zu verbessern.

Bevor Sie ein Gebäude bauen, sollten Sie eine solide Grundlage schaffen: Zunächst müssen Sie eine Programmiersprache lernen

Wir haben oben auch erwähnt, dass Sie mindestens eine Programmiersprache lernen müssen, wenn Sie in der Automatisierung gut abschneiden möchten. Natürlich, wie viel Sprache sollte gelernt werden? Ich kann nicht weiter lernen, oder? Die Antwort ist, solange die Arbeit verwendet werden kann!

Die Beherrschung der meisten grammatikalischen Grundlagen kann bereits die meisten Ihrer täglichen Anforderungen für automatisierte Tests erfüllen, da wir nicht so viele Skripte wie die Entwicklung haben, so schwierig!

Sie müssen die Sprache lernen, For-Schleife, ob Urteil, Datentyp, Operator, objektorientiert, Programmierung usw., ob Python oder Java, diese werden alle benötigt, eigentlich gleich, solange Sie es wissen eine Sprache, andere Sprachen ähnlich.

Nachdem Sie mit der Sprache begonnen haben, begeben Sie sich offiziell auf den Weg, ein Gott der Automatisierung zu werden, der Einführungsartikel Selenium~

 


Selenium, als Urahn der Automatisierung, wird mittlerweile schlecht gespielt, im Grunde kennt es jeder, solange es Automatisierung macht.

Warum also überhaupt Selen lernen?

Es kann Ihnen helfen, schnell zu verstehen, was Automatisierung ist, und kann Ihnen auf der Seite intuitiv Daten zurückgeben. Ich habe das Gleiche am Anfang gemacht, mir die API von Selen angesehen, sie Stück für Stück zernagt und fast jede Methode probiert.

Selenium hat die Version 1.0, Version 2.0 und Version 3.0 Es wird empfohlen, dass Sie sich vor dem Lernen über seine Geschichte und Funktionsweise informieren, damit Sie Ihr Interesse am Lernen besser wecken können. Sie müssen einen Browser installieren, um Selen zu lernen. Es wird dringend empfohlen, Chrome anstelle von Firefox zu verwenden. Ersteres ist kompatibler.

Nach der Installation von Chrome müssen Sie als nächstes den Treiber installieren. Herzlichen Glückwunsch, Sie haben die erste Grube der Automatisierung betreten! Die meisten Gründe liegen darin, dass Ihre Browserversion und Treiberversion nicht übereinstimmen. Nachdem Sie Baidu besucht haben, sind hier die su und kw, die Sie tief beeindrucken (Sie werden wissen, was es ist, nachdem Sie es gelernt haben).

Sie werden verschiedene Selenium-Methoden ausprobieren und den Browser bedienen.Zu diesem Zeitpunkt scheint es die Tür zu einer neuen Welt zu öffnen, oh! Es stellt sich heraus, dass automatisiertes Testen so funktioniert! toll!

Müde von Selen

Nachdem Sie ein paar Tage oder ein paar Wochen gespielt haben, scheinen Sie kein Interesse an Selenium zu haben, und die Skripte werden immer mehr geschrieben. Sie können einige lineare Automatisierungsskripte schreiben. Zu diesem Zeitpunkt sind Sie ein wenig stolz und Selbstgefällig, nur Das, Automatisierung ist nichts weiter als das, oder?

Was ich sagen möchte ist, seien Sie nicht zu glücklich, Sie sind gerade durch die Tür der Automatisierung getreten und haben einen kleinen Schritt gemacht. Jetzt können Sie anfangen zu versuchen, einige sich wiederholende Vorgänge im Projekt in Skripte zu schreiben und sie auszuführen, Sie werden das Gefühl haben, etwas erreicht zu haben! Die Wirkung der Automatisierung hat zunächst Gestalt angenommen, als ob Sie begonnen hätten zu verstehen, wie Sie die Automatisierung zur Verbesserung der Arbeitseffizienz einsetzen können.

 

Wenden Sie sich an das Automatisierungsframework Unittest/testNG

Wenn Sie das Unit-Test-Framework Unittest/testNG lernen, werden Sie beim Erlernen von Selenium feststellen, dass die meisten linearen Skripts schwierig zu verwalten sind und jedes Skript einzeln ausgeführt werden muss und die Testergebnisse nicht gezählt werden können Zu diesem Zeitpunkt muss das Unit-Testing-Framework debütieren!

Sie lernen, wie Sie das Unit-Test-Framework verwenden, wie Sie eine Testklasse erstellen, wie Sie Testmethoden schreiben, wie Sie Ihr Skript als Testfall schreiben, wie Sie überprüfen, ob der Test bestanden wurde, wie Sie die Ausführung steuern Reihenfolge der Anwendungsfälle und wie man Zusicherungen schreibt Warten Sie, das sind alles Dinge, die Sie erforschen und lernen werden.

Unzufrieden mit den Fähigkeiten des Unit-Testing-Frameworks

Wenn Ihr Skript gut geschrieben ist, werden die Anwendungsfälle organisiert, und jedes Mal, wenn der Leiter Sie auffordert, einen Test durchzuführen, senden Sie ihm die Testergebnisse und fassen sie in Form eines Testberichts zusammen.

Zu diesem Zeitpunkt öffnen Sie Ihren Editor viele Male, führen den Test durch und führen den Test dann in Eile durch, statistische Testergebnisse nacheinander und senden sie nach Erschöpfung an den Leiter.

Am nächsten Tag sagte der Leiter noch einmal, bevor Sie die Arbeit verlassen, können Sie noch einen Test machen und mir einen Bericht geben, und Sie werden sich wie sterben fühlen. Dann fängst du an Baidu zu durchstöbern, im Forum zu stöbern, und willst eine Lösung, dann kommt das "Framework" erst einmal ins Blickfeld.

Lernautomatisierungs-Framework

An diesem Punkt haben Sie bereits damit begonnen, darüber nachzudenken, wie man ein Automatisierungs-Framework schreibt, was bedeutet, dass Ihre Automatisierung bereits begonnen hat und sich in Richtung der mittleren Ebene entwickelt. Sie beginnen, die Struktur des Frameworks zu studieren und zu finden dass es Fallmanagement, Protokolle, Testberichte, Mail, grundlegende Kapselungsklassen usw. und ein Framework-Entwurfsmuster (klassisches PO-Muster) gibt

Sie beginnen damit, Ihre Anwendungsfälle zu organisieren, Basisklassen zu kapseln, Seitenklassen zu schreiben, Protokolle zu kapseln, Module zu mailen usw. Nach ein paar Wochen des Feinschliffs ist Ihr erstes Automatisierungs-Framework geboren!

An diesem Punkt können Sie zu verschiedenen technischen Gruppen gehen, um anzugeben, und automatisch ein Automatisierungs-Framework schreiben, und viele Anfänger werden anfangen, Sie zu loben und Sie einen Meister zu nennen.

Erster Schnittstellentest

Das Obige beendet das Erlernen der UI-Automatisierung, also gehen wir zur Schnittstelle. Im Allgemeinen verwenden Unternehmen die HTTP-Schnittstelle, also beginnen Sie, vom HTTP-Protokoll zu lernen, seine Struktur, den Anforderungsheader, die Anforderungsparameter, die Anforderungsadresse, die Anforderungsmethode usw. zu verstehen und versuchen, einige Tools zur Paketerfassung zu erlernen

Wie Fiddler, Chales, Wireshark oder Browser-Entwicklertools usw., um Pakete zu erfassen, um einige Schnittstellen zu erhalten, und langsam ihre Anforderungsstruktur zu beobachten, aber zu diesem Zeitpunkt ist es noch im Nebel, und ich weiß nicht viel darüber Schnittstelle. Also habe ich ein Schnittstellentest-Tool heruntergeladen, versucht, die Parameter in das Tool einzugeben, und den Anruf manuell initiiert.

Wenn das Tool einen 200-Code zurückgibt, oh, genau das ist passiert. Es scheint Daten mit dem Server zu übertragen und zu empfangen, und dann zeigt die Front-End-Seite die Daten im Vordergrund an!

 

Versuchen Sie, die Request/HttpClient-Bibliothek zu lernen, um eine Anfrage zu initiieren

Nachdem Sie den Postboten verwendet haben, werden Sie denken, wie verwende ich den Code, um eine Anfrage zu initiieren? Zu diesem Zeitpunkt müssen Sie diese beiden Dinge lernen. Beginnen Sie nach Pip-Installations- und Importanfragen Ihre Reise zur Schnittstellenautomatisierung.

Sie versuchen, die Schnittstelle zu verwenden, um das Hinzufügen, Löschen, Ändern und Abfragen der vorherigen UI-Automatisierung zu realisieren. Sie nehmen die Anforderungsparameter der Paketerfassung, rufen eine Methode nach der anderen auf und führen sie dann mit einem Klick aus! Einmal grün und dreimal rot! Warum? Dann stellte ich fest, dass die Schnittstelle 401 zurückgab, keine Berechtigung! tiefgreifend! Ich bin nicht eingeloggt, wie kann ich mich einloggen? ?

Beginnen Sie die Recherche mit vielen Zweifeln. Zu diesem Zeitpunkt müssen Sie den Funktionsmechanismus von Cookies und Token verstehen und dann mit Ihrem Code zusammenarbeiten, um Cookies zwischenzuspeichern, um eine Anmeldung zu erreichen. Nach Behebung dieses Problems meldet die Schnittstelle immer noch einen Fehler. Das Löschen der Schnittstelle erinnert mich daran, dass solche Daten nicht vorhanden sind!

Nach Prüfung und Prüfung stellt sich heraus, dass meine Daten aufgebraucht sind, wie kann ich also sicherstellen, dass die Parameter, die ich jedes Mal eingebe, neu sind? Zu diesem Zeitpunkt müssen Sie die Schnittstellenzuordnung verstehen, wie Sie die Parameter aus der Antwort der vorherigen Schnittstelle extrahieren und für die nächste Schnittstelle verwenden.

request/HttpClient kombiniert mit unittest/testNG+allure

Auf die gleiche Weise werden Sie, wenn Sie Request/HttpClient lernen, natürlich daran denken, sie in ein Komponententest-Framework zu integrieren, und dann werden Sie einen großen Reiztestbericht finden, kombiniert mit einigen Protokollmodul-Druckparametern, einem solchen Schnittstellen-Framework, das Sie sind vertraut mit Es kam heraus, fast das gleiche wie zuvor! Trivial.

Versuchen Sie, Testfälle mit yaml/Excel zu verwalten

Während Sie darauf warten, dass Sie Ihr eigenes Framework nehmen und wiederholt und langweilig Testfälle schreiben, denken Sie in diesem Moment, warum muss ich jedes Mal request.post, die Methode ist die gleiche, aber die Daten sind unterschiedlich, warum muss ich das? die ganze Zeit Code schreiben? ,sehr müde! Warum nicht einige Dateien verwenden, um Testdaten zu lesen und Parametrierungen vorzunehmen?

Zu diesem Zeitpunkt fangen Sie an, das Lesen und Schreiben von Excel / Yaml zu lernen. Sie möchten alle Testfälle in Dateien verwalten, damit Sie nicht jedes Mal Code schreiben müssen, aber die Dinge sind nicht so einfach! Wie gehe ich also mit verknüpften Daten in der Datei um? Wie werden Cookies zwischengespeichert? Wie macht man eine Behauptung? Was ist, wenn Sie eine dynamische Eingabe machen?

Die obigen Fragen müssen Sie sich selbst überlegen.

Premium-Ware? git?jenkins?docker-Container? verteilt?

An dieser Stelle haben Sie bereits mehrere Frameworks geschrieben und auf Basis Ihres eigenen Frameworks optimiert. Dann finden Sie zu diesem Zeitpunkt ein sehr ernstes Problem. Mein Code kann nur lokal ausgeführt werden. Wenn Sie ihn für andere verwenden möchten, müssen Sie dies auch tun Konfigurieren Sie die Umgebung auf dem Computer eines anderen und kopieren Sie den Code auf ihn.

Warum also nicht ein Codeverwaltungstool verwenden, um meine Skripte zu verwalten? Dann müssen Sie Git lernen und wissen, wie man Commit-Push hinzufügt, um meinen Code in das Gitlab des Unternehmens zu pushen, damit andere ihn verwenden können, also möchte ich mit Gitlab einige geplante Aufgaben erledigen und es automatisch ausführen lassen?

Jenkins lernen. Mehr noch, was ist, wenn ich mehrere Anwendungsfälle zusammen ausführen möchte? Lerne Selen Grid, Docker, etc. .

Testplattform/Toolentwicklung an der Spitze der Automatisierung

Sie sind immer noch nicht zufrieden, nachdem Sie das Automatisierungs-Ökosystem des Unternehmens aufgebaut haben. Warum steuere ich diese Dinge nicht visuell? Plattform machen? Anwendungsfälle verwalten, Aufgaben verwalten, Testberichte verwalten? Kann ich auch einige Bereitstellungsaufgaben des Unternehmens integrieren?

Großartige Idee! Zu diesem Zeitpunkt sind Sie nicht nur ein exzellenter Automatisierungsingenieur, sondern auch auf dem Weg der Testentwicklung! Beginnen Sie mit dem Lernen, verstehen Sie das Testframework httprunner, das Entwicklungsframework django/flask/springboot, verstehen Sie den Prozess der Schnittstellenentwicklung, verstehen Sie mybatis, shiro, quartz usw. und beginnen Sie, das Frontend zu lernen

Sehen/reagieren, verstehen, was Komponentenentwicklung ist, Eltern-Kind-Komponenten-Übergabewert, beginnen, viele Dinge zu verstehen, sogar das Wissen über Betrieb und Wartung, beginnen, k8s Docker, Microservices zu verstehen. . Dann gehen Sie immer mehr in Richtung des großen Gottes, ich hoffe, Sie haben keine Glatze, Sie können sich zu diesem Zeitpunkt stolz als qualifizierter Testentwickler oder als Full-Stack-Entwickler bezeichnen. Das ist das Ende.

Epilog

Sagen Sie mir, wissen Sie wirklich, wie man Tests automatisiert?

Ich denke du magst

Origin blog.csdn.net/a448335587/article/details/129389391
Empfohlen
Rangfolge