Heim > Artikel > Backend-Entwicklung > So verwenden Sie PhantomJS für schnittstellenlose Tests in PHP
In der modernen Webentwicklungsumgebung ist das schnittstellenlose Testen ein unverzichtbarer Schritt, da es Benutzervorgänge simulieren und die Korrektheit der Benutzeroberfläche überprüfen kann. PhantomJS ist ein beliebtes Tool für automatisierte Tests in einer Headless-Umgebung. In diesem Artikel wird erläutert, wie Sie PhantomJS in PHP für schnittstellenlose Tests verwenden.
1. PhantomJS installieren
Zunächst müssen Sie PhantomJS auf dem Computer installieren. Sie können es von der offiziellen Website herunterladen und installieren. Im Folgenden sind die Installationsschritte unter Linux aufgeführt:
<?php $url = 'https://www.google.com/'; $searchText = 'PhantomJS'; // 启动PhantomJS服务 $phantomjs = new JonnyWPhantomJsClient(); $phantomjs->getEngine()->setPath('/usr/local/bin/phantomjs'); $request = $phantomjs->getMessageFactory()->createRequest($url, 'GET'); $response = $phantomjs->getMessageFactory()->createResponse(); // 执行搜索 $request->setDelay(5); // 等待5秒钟 $request->setViewportSize(1024, 768); // 设置视口大小 $request->setRequestData(array('q' => $searchText), JonnyWPhantomJsHttpRequestInterface::METHOD_POST); $phantomjs->send($request, $response); // 输出响应 echo $response->getContent();Der obige Code verwendet eine PHP-Bibliothek „jonnyw/phantomjs“, die eine einfache Schnittstelle zur Steuerung von PhantomJS und zum Erhalten von Antworten bietet. Zuerst müssen Sie den PhantomJS-Dienst starten und seinen Ausführungspfad festlegen. Erstellen Sie dann ein Anforderungsobjekt und geben Sie die Seiten-URL, auf die zugegriffen werden soll, und den Suchtext an. Als nächstes können Sie die Seitengröße und Verzögerung sowie den Anforderungstyp (POST oder GET) festlegen. Verwenden Sie abschließend die Methode send(), um die Anfrage zu senden und die Antwort zu speichern. Die Antwort kann im $response-Objekt abgerufen werden. 3. Erweiterte VerwendungZusätzlich zur oben genannten grundlegenden Verwendung verfügt PhantomJS auch über viele erweiterte Verwendungsmöglichkeiten, die erkundet werden können. Hier sind einige Beispiele:
Erstellen Sie Screenshots der Seite.
Verwenden Sie PhantomJS, um ganz einfach Screenshots zu erstellen. Der Beispielcode lautet wie folgt:<?php $url = 'https://www.google.com/'; $searchText = 'PhantomJS'; // 启动PhantomJS服务 $phantomjs = new JonnyWPhantomJsClient(); $phantomjs->getEngine()->setPath('/usr/local/bin/phantomjs'); $request = $phantomjs->getMessageFactory()->createRequest($url, 'GET'); // 设置截图配置 $settings = array( 'quality' => 90, 'format' => 'png', 'viewportSize' => array('width' => 1024, 'height' => 768), 'clipRect' => array('top' => 0, 'left' => 0, 'width' => 1024, 'height' => 768), 'paperSize' => array('format' => 'A4', 'orientation' => 'portrait', 'margin' => '1cm'), ); // 创建一个屏幕截图 $screenshot = $phantomjs->captureScreenshot($request, $settings); // 保存截图到文件 file_put_contents('screenshot.png', $screenshot->getBinary());
<?php $url = 'https://www.google.com/'; $searchText = 'PhantomJS'; // 启动PhantomJS服务 $phantomjs = new JonnyWPhantomJsClient(); $phantomjs->getEngine()->setPath('/usr/local/bin/phantomjs'); $request = $phantomjs->getMessageFactory()->createRequest($url, 'GET'); $response = $phantomjs->getMessageFactory()->createResponse(); // 执行搜索 $request->setDelay(5); // 等待5秒钟 $request->setViewportSize(1024, 768); // 设置视口大小 $request->setRequestData(array('q' => $searchText), JonnyWPhantomJsHttpRequestInterface::METHOD_POST); // 模拟点击 $request->setScript('document.getElementsByName("btnG")[0].click();'); // 模拟滚动 $request->setScript('window.scrollTo(0, document.body.scrollHeight);'); // 模拟输入 $request->setScript('document.getElementsByName("q")[0].setAttribute("value", "PhantomJS");'); $phantomjs->send($request, $response); // 输出响应 echo $response->getContent();
Das obige ist der detaillierte Inhalt vonSo verwenden Sie PhantomJS für schnittstellenlose Tests in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!