Verwenden von Selen mit Phpunit
Tests ist ein wirklich breites Thema, unabhängig davon, ob es sich um Unit -Tests, Funktionstests, Akzeptanztests usw. handelt. In diesem Artikel werden wir sehen, wie Sie mit Selen über Akzeptanztests führen können. Ich werde ein praktisches Beispiel verwenden, um einen echten Anwendungsfall zu veranschaulichen. Ich werde davon ausgehen, dass Sie bereits wissen, wie man mit Phpunit Tests testet, oder dass Sie zumindest das Verständnis dafür haben, worum es geht. Lassen Sie uns beginnen.
Key Takeaways
- selenium ist ein Tool zum automatischen Testen der Benutzeroberfläche, mit der Sie Tests einrichten können, die wie ein Benutzer mit Ihrer Webanwendung interagieren. Es funktioniert, indem Tests in Befehle übersetzt und an den Selenium -Server weitergegeben werden, der dann mit dem Webbrowser mit seiner nativen API interagiert.
- Phpunit, ein Einheitstest -Framework für PHP, kann in Verbindung mit Selen für Akzeptanztests verwendet werden. Es bietet zwei Klassen für diesen Zweck: phpunit_extensions_seleniumTestcase für Selenium RC (jetzt veraltet) und phpunit_extensions_selenium2TestCase für Selenium WebDriver.
- Datenanbieter in Phpunit ermöglichen die Fütterung spezifischer Daten in Tests ohne Iteration. Dies kann in Verbindung mit Selen verwendet werden, um zu testen, wie Ihre Webanwendung auf verschiedene Eingaben reagiert.
- Selenium -Tests können auf verschiedenen Browsern durchgeführt werden, da Selen einen Treiberansatz verwendet, bei dem jeder Browser -Anbieter seinen eigenen Fahrer anbietet. Dies ermöglicht umfassende Cross-Browser-Tests Ihrer Webanwendung.
Was ist Akzeptanztests?
Akzeptanztest ist der Prozess des Erzählens von Benutzergeschichten durch Tests, und ich liebe dieses Zitat, um es zu beschreiben:
Ein formeller Test wurde durchgeführt, um festzustellen, ob ein System seine Akzeptanzkriterien erfüllt oder nicht, und um dem Kunden zu bestimmen, ob das System akzeptiert wird oder nicht.
Was ist Selenium?
selen ist ein Tool zum automatisierenden Testen der Benutzeroberfläche. Es hilft beim Testen Ihrer Bewerbung gegen den Browser. Der Prozess könnte so beschrieben werden:
- Gehen Sie zur Seite http://myapp.dev/videos.
- behaupten Sie die Seite enthält eine Liste von 20 Videos.
- Klicken Sie auf Nummer zwei in der Pagination.
- behaupten Sie die Seite enthält eine Liste von 20 Videos.
- Beenden Sie den Browser.
Sie fragen sich vielleicht: „Wie manipuliert sie die Webseite mit den beschriebenen Tests?“
Die Antwort lautet "Es hängt davon ab". Wenn Sie Selenium RC (zuvor Selenium 1) verwenden, wird der Seite mit automatisch generiertem JavaScript -Code in die Seite der gewünschten Aktionen eingerichtet. Selenium RC ist veraltet und wird nur im Wartungsmodus unterstützt. Sie sollten Selenium Webdriver verwenden.
Bei der Verwendung von Selenium WebDriver (Selenium 2) werden die Tests in Befehle übersetzt und an den Selenium -Server übergeben (mehr dazu in einem Moment) und dann mit der nativen Webbrowser -API an den Browser weitergeleitet.
Anwendungseinrichtung
Da wir keine Anwendung zum Testen haben, werde ich eine Benutzerregistrierungsseite verwenden. Der Benutzer wird seine persönlichen Informationen und einige Abrechnungsinformationen eingeben. Wenn alles gut ist, sollte die Seite ausgeben, alles ist gut!. Andernfalls wird die Seite das Abonnementformular mit einer Liste von Validierungsfehlermeldungen angezeigt.
Wir werden unsere Anwendung mithilfe von Phpunit mit der Seleniumerweiterung testen. Stellen Sie sicher
<span>composer require --dev phpunit/phpunit </span><span>composer require --dev phpunit/phpunit-selenium</span>
<span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
phpunit unterstützt sowohl Selenium RC als auch Webdriver und bietet zwei Klassen für diesen Zweck. Die Phpunit_extensions_seleniumTestCase wird für die RC -Version verwendet, und die Phpunit_extensions_selenium2TestCase wird für die Webdriver -Version verwendet. Ihr Test muss also einen von ihnen erweitern, um loszulegen. Bitte denken Sie daran, dass die RC -Version veraltet ist, also verwenden wir den Webdriver in unserem Beispiel unten.
<span>// tests/acceptance/UserSubscriptionTest.php </span> <span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase </span><span>{ </span> <span>public function setUp() </span> <span>{ </span> <span>$this->setHost('localhost'); </span> <span>$this->setPort(4444); </span> <span>$this->setBrowserUrl('http://vaprobash.dev'); </span> <span>$this->setBrowser('firefox'); </span> <span>} </span><span>}</span>
Die Teardown -Methode wird aufgerufen, wenn die Tests durchgeführt werden, und es wird verwendet, um die Bühne zu löschen. Wir verwenden es, um den Browser zu schließen und die aktuelle Sitzung zu beenden.
<span>public function tearDown() </span><span>{ </span> <span>$this->stop(); </span><span>}</span>
Phpunit -Datenanbieter ermöglichen es uns, unsere Tests mit spezifischen Daten zu füttern, ohne darüber zu iterieren. Sie können mehr in der Dokumentation lesen.
<span>// tests/acceptance/UserSubscriptionTest.php </span> <span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase </span><span>{ </span> <span>public function validInputsProvider() </span> <span>{ </span> <span>$inputs[] = [ </span> <span>[ </span> <span>'username' => 'younesrafie', </span> <span>'password' => 'mypassword', </span> <span>'password_confirmation' => 'mypassword', </span> <span>'email' => 'mymail@gmail.com', </span> <span>'cardHolderName' => 'RAFIE Younes', </span> <span>'cardNumber' => '378282246310005', </span> <span>'billingAddress' => 'Narjiss B Fez Morocco', </span> <span>'cvc' => '850', </span> <span>'expirationMonth' => '01', </span> <span>'expirationYear' => '2016', </span> <span>] </span> <span>]; </span> <span>return $inputs; </span> <span>} </span> <span>public static function invalidInputsProvider() </span> <span>{ </span> <span>$inputs[] = [ </span> <span>[ </span> <span>'username' => '@younesrafie', </span> <span>'password' => 'mypassword', </span> <span>'password_confirmation' => 'mypassword', </span> <span>'email' => 'mymail@gmail.com', </span> <span>'cardHolderName' => 'RAFIE Younes', </span> <span>'cardNumber' => '378282246310005', </span> <span>'billingAddress' => 'Narjiss B Fez Morocco', </span> <span>'cvc' => '850', </span> <span>'expirationMonth' => '01', </span> <span>'expirationYear' => '2016', </span> <span>], </span> <span>"Username must only contain alpha numeric characters and dashes." </span> <span>]; </span> <span>// ... </span> <span>return $inputs; </span> <span>} </span><span>}</span>
Arbeiten mit DOM -Elementen
arbeitenEine gemeinsame Aufgabe bei der Arbeit mit Webseiten ist die Elementauswahl. Die Selenium -Erweiterung von Phpunit bietet dafür eine wirklich schöne API. Sie können Elemente nach Klassenname, Tag, Name, ID, CSS -Selektor, XPath usw. auswählen Wert, Aktualisieren von Element CSS und eine Reihe anderer gängiger Aufgaben. Für unsere Seite können wir so etwas wie Folgendes tun.
<span>composer require --dev phpunit/phpunit </span><span>composer require --dev phpunit/phpunit-selenium</span>
In diesem Test wird die Eingabe des Benutzernamens ausgewählt und einen Wert festgelegt und dann das Abonnementformular eingereicht. Wir können danach eine Behauptung hinzufügen, um festzustellen, ob die Antwort wie erwartet ist. Der Seitenkörper enthält alles ist gut! Wenn die Validierung vergangen ist.
<span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
Unser Datenanbieter enthält den Eingabennamen und den entsprechenden Wert. Wir erstellen eine separate Methode, um das Füllen der Formulareingänge zu verarbeiten und zu senden.
<span>// tests/acceptance/UserSubscriptionTest.php </span> <span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase </span><span>{ </span> <span>public function setUp() </span> <span>{ </span> <span>$this->setHost('localhost'); </span> <span>$this->setPort(4444); </span> <span>$this->setBrowserUrl('http://vaprobash.dev'); </span> <span>$this->setBrowser('firefox'); </span> <span>} </span><span>}</span>
gültige Formulareingabe
Um den Browser auf eine bestimmte Seite zu richten, verwenden wir die URL -Methode aus der Klasse phpunit_extensions_selenium2TestCase. Die URL ist relativ zu der, die der setBrowserurl -Methode zur Verfügung gestellt wird. Nach dem Zeugnis des Browsers auf die Indexseite füllen und senden wir das Formular aus und testen Sie die erwartete Erfolgsnachricht.
<span>public function tearDown() </span><span>{ </span> <span>$this->stop(); </span><span>}</span>
Unter der Annahme, dass Ihr Selenium -Server in Betrieb ist, führen Sie Ihre Tests mit Phpunit -Tests/Akzeptanz/userSubScriptiontest.php aus. Dadurch wird eine neue Browser -Sitzung erstellt und das Formular ausfüllt. Wir erwarten, dass alles mit einer erfolgreichen Behauptung passieren wird.
Einige der Tests scheitern, und die Testdauer ist zu kurz, um zu beobachten, was schief gelaufen ist. Phpunit kann Screenshots von fehlenden Tests mithilfe der CurrentsCreenshot -Methode erfassen, die ein Blob -Bild zurückgibt, das wir speichern können.
<span>// tests/acceptance/UserSubscriptionTest.php </span> <span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase </span><span>{ </span> <span>public function validInputsProvider() </span> <span>{ </span> <span>$inputs[] = [ </span> <span>[ </span> <span>'username' => 'younesrafie', </span> <span>'password' => 'mypassword', </span> <span>'password_confirmation' => 'mypassword', </span> <span>'email' => 'mymail@gmail.com', </span> <span>'cardHolderName' => 'RAFIE Younes', </span> <span>'cardNumber' => '378282246310005', </span> <span>'billingAddress' => 'Narjiss B Fez Morocco', </span> <span>'cvc' => '850', </span> <span>'expirationMonth' => '01', </span> <span>'expirationYear' => '2016', </span> <span>] </span> <span>]; </span> <span>return $inputs; </span> <span>} </span> <span>public static function invalidInputsProvider() </span> <span>{ </span> <span>$inputs[] = [ </span> <span>[ </span> <span>'username' => '@younesrafie', </span> <span>'password' => 'mypassword', </span> <span>'password_confirmation' => 'mypassword', </span> <span>'email' => 'mymail@gmail.com', </span> <span>'cardHolderName' => 'RAFIE Younes', </span> <span>'cardNumber' => '378282246310005', </span> <span>'billingAddress' => 'Narjiss B Fez Morocco', </span> <span>'cvc' => '850', </span> <span>'expirationMonth' => '01', </span> <span>'expirationYear' => '2016', </span> <span>], </span> <span>"Username must only contain alpha numeric characters and dashes." </span> <span>]; </span> <span>// ... </span> <span>return $inputs; </span> <span>} </span><span>}</span>
Ungültige Formulareingabe
Die Einreichung von ungültiger Form ist fast identisch mit der vorherigen Methode. Wir füllen die Formulareingänge aus und reichen ein. Anschließend überprüfen wir, dass die Validierungsfehlermeldung wie erwartet ist. Wir werden den früher erwähnten InvalidInputSProvider verwenden.
<span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase </span><span>{ </span> <span>public function testFormSubmissionWithUsername() </span> <span>{ </span> <span>$this->byName('username')->value('younesrafie'); </span> <span>$this->byId('subscriptionForm')->submit(); </span> <span>} </span><span>}</span>
Mit der BYCSSSelector -Methode können wir mithilfe von CSS -Selektoren ein Element von der Seite abrufen, in diesem Fall der Fehlerabsatz. Wir behaupten, ob die Fehlermeldung nach dem Feld Fehlermeldung aus der Datenanbietermethode erwartet wird.
Unser Formular enthält nur grundlegende Interaktionen wie Auswahl von Elementen, Einstellungswerte, Senden des Formulars usw. Wir können jedoch auch die Klickmethode auf einer Schaltfläche oder Linkelement verwenden, um zu überprüfen, ob die Zielseite wie erwartet funktioniert.
Verwenden Sie einen anderen Browser
Wir haben den Firefox -Browser für unsere Tests verwendet. Wir können jedoch auch einen anderen Browser verwenden. Selenium verwendet den Treiberansatz, bei dem jeder Browser -Anbieter an der Bereitstellung eines eigenen Fahrers arbeitet. Sie können die Liste der unterstützten Treiber in der Dokumentation überprüfen.
Um den Chrombrowser zu aktivieren, müssen Sie den Chromedriver herunterladen und den Pfad als Option beim Starten des Selenium -Servers angeben.
<span>composer require --dev phpunit/phpunit </span><span>composer require --dev phpunit/phpunit-selenium</span>
<span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
Ist das Dokument bereit?
Wenn Ihr Seiteninhalt über AJAX geladen wird und Sie die Tests nicht direkt auf Seite geladen möchten, möchten Sie warten, bis Ihre Seite geladen ist und Ihre Elemente vorhanden sind.
<span>// tests/acceptance/UserSubscriptionTest.php </span> <span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase </span><span>{ </span> <span>public function setUp() </span> <span>{ </span> <span>$this->setHost('localhost'); </span> <span>$this->setPort(4444); </span> <span>$this->setBrowserUrl('http://vaprobash.dev'); </span> <span>$this->setBrowser('firefox'); </span> <span>} </span><span>}</span>
Die Rückruffunktion wartet, bis wir einen Nicht -Nullwert zurückgeben, und wird nach zwei Sekunden mit einer Fehlermeldung einzeitlich ausführen. Die Lookup -Methode sucht weiter nach dem Element. Wenn Sie jedoch ein Suchintervall angeben möchten, können Sie die implizite Methode verwenden.
<span>public function tearDown() </span><span>{ </span> <span>$this->stop(); </span><span>}</span>
Schlussfolgerung
Dieser Artikel war eine kurze Einführung in die Verwendung von Selen mit Phpunit für Akzeptanztests. Im Allgemeinen können Sie Selenium für alles verwenden, was die Browserautomatisierung erfordert. Wenn Sie Kommentare oder Fragen haben, veröffentlichen Sie sie unten und ich werde mein Bestes tun, um sie zu beantworten.
häufig gestellte Fragen (FAQs) zur Verwendung von Selen mit Phpunit
Wie installiere ich Phpunit und Selenium WebDriver in PHP? Installieren Sie zuerst den Komponisten, wenn Sie es noch nicht getan haben. Führen Sie dann den folgenden Befehl in Ihrem Terminal aus, um Phpunit zu installieren: Komponist benötigt -Dev Phpunit/Phpunit ^9. Verwenden Sie für Selenium WebDriver den Befehl: Composer benötigt-Dev Php-WebDriver/WebDriver. Dadurch werden sowohl Phpunit- als auch Selenium -Webdriver in Ihrem PHP -Projekt installiert. Dadurch verwendet Selen Webdriver. In Ihrem Testfall können Sie Webdriver -Befehle verwenden, um mit dem Browser zu interagieren. Sobald Ihr Testkoffer fertig ist, können Sie es mit dem Befehlszeilen-Tool von Phpunit ausführen. Navigieren Sie einfach zu Ihrem Projektverzeichnis im Terminal und führen Sie den Befehl aus: phpunit myTest.php, wobei "myTest.php" der Name Ihrer Testdatei ist.
Wie verwende ich Behauptungen in Phpunit mit Selen? Sie sind wichtig, um festzustellen, ob ein Test bestanden oder gescheitert ist. In einem Phpunit -Test mit Selen können Sie Behauptungen verwenden, um den Stand der Webelemente zu überprüfen. Sie können beispielsweise behaupten, dass ein bestimmtes Element vorhanden, sichtbar ist oder einen bestimmten Text enthält. Dazu können Sie die von Phpunit bereitgestellten Assert -Methoden verwenden, z. B. AssertEquals, AssertRue oder AssertContains. Phpunit mit Selen wird mit den Sitzungsmethoden des Webdrivers durchgeführt. Wenn Sie eine neue Instanz des Webdrivers erstellen, wird eine neue Browser -Sitzung gestartet. Sie können mit dieser Sitzung mit verschiedenen Methoden wie navigate (), refresh () oder close () interagieren. Um die Sitzung zu beenden, können Sie die Methode Quit () verwenden, die alle Fenster schließt und die Sitzung beendet. In Phpunit mit Selen können Sie schwierig sein, da Sie warten müssen, bis der AJAX -Anruf ausgeführt wird, bevor Sie mit den aktualisierten Elementen interagieren können. Selenium WebDriver bietet die WebDriverwait -Klasse für diesen Zweck. Sie können es verwenden, um zu warten, bis eine bestimmte Bedingung wahr ist, bevor Sie fortfahren. Sie können beispielsweise warten, bis ein Element sichtbar oder klickbar ist.
Wie kann ich Phpunit -Tests mit Selenium auf verschiedenen Browsern durchführen? Safari und Internet Explorer. Um Ihre Phpunit -Tests in einem anderen Browser durchzuführen, müssen Sie eine neue Instanz des Webdrivers für diesen Browser erstellen. Um Firefox zu verwenden, würden Sie eine neue FirefoxDriver -Instanz erstellen. Dann können Sie diesen Treiber verwenden, um Ihre Tests auszuführen. ) Methode des Webdrivers. Mit dieser Methode können Sie den Kontext in einen anderen Frame oder Iframe umstellen. Sobald Sie mit den Elementen im Rahmen interagieren, können Sie mit der Methode Switchto ()-> StandardContent () zum Hauptinhalt zurückkehren.
Screenshots mit Selen in Phpunit -Tests können mit der Methode takescreenshot () des Webdrivers durchgeführt werden. Diese Methode enthält einen Screenshot des aktuellen Fensters und gibt es als Zeichenfolge im PNG -Format zurück. Sie können diese Zeichenfolge dann in einer Datei speichern, um den Screenshot zu erstellen.
Wie gehe ich in Phpunit mit Selen mit Selen um
cookies können in Phpunit mit Selen mit der Methode "Manager ()-> getcookies () des Webdrivers gehandhabt werden. Diese Methode gibt alle Cookies als Array zurück. Sie können auch den Manager ()-> addcookie (), verwalten ()-> DeleteCookie () und verwalten ()-> DeleteAllcookies () -Methoden zur Manipulation von Cookies. Paralleles Selenium? Dies kann mit einem Selen -Gitter erreicht werden, mit dem Sie Tests auf mehreren Maschinen und Browsern gleichzeitig ausführen können. Um Selenium Grid zu verwenden, müssen Sie einen Hub und Knoten einrichten und dann Ihren Webdriver so konfigurieren, dass Sie eine Verbindung zum Hub herstellen.
Das obige ist der detaillierte Inhalt vonVerwenden von Selen mit Phpunit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Die Verwendung von Vorverarbeitungsanweisungen und PDO in PHP kann SQL -Injektionsangriffe effektiv verhindern. 1) Verwenden Sie PDO, um eine Verbindung zur Datenbank herzustellen und den Fehlermodus festzulegen. 2) Erstellen Sie Vorverarbeitungsanweisungen über die Vorbereitungsmethode und übergeben Sie Daten mit Platzhaltern und führen Sie Methoden aus. 3) Abfrageergebnisse verarbeiten und die Sicherheit und Leistung des Codes sicherstellen.
