ホームページ >バックエンド開発 >PHPチュートリアル >PHP でのインターフェイスレス テストに PhantomJS を使用する方法
現代の Web 開発環境では、インターフェイスレス テストはユーザーの操作をシミュレートし、UI の正しさを検証できるため、不可欠なステップです。 PhantomJS は、ヘッドレス環境での自動テスト用の人気のあるツールです。この記事では、PHP で PhantomJS を使用してインターフェイスレス テストを行う方法を紹介します。
1. PhantomJS のインストール
まず、PhantomJS をマシンにインストールする必要があります (公式 Web サイトからダウンロードしてインストールできます)。 Linux でのインストール手順は次のとおりです。
これで、PhantomJS がインストールされ、コマンド ラインで「phantomjs」コマンドを実行して確認できます。
2. 自動テストのために PHP で PhantomJS を使用する
PhantomJS をインストールした後の次のステップは、自動テストのためにそれを PHP に統合することです。以下は、PhantomJS を使用して Google.com を開いて「PhantomJS」を検索する簡単な PHP スクリプトです。
<?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();
上記のコードは、PhantomJS を制御して応答を取得するためのシンプルなインターフェイスを提供する PHP ライブラリ「jonnyw/phantomjs」を使用しています。まず、PhantomJS サービスを開始し、その実行パスを設定する必要があります。次に、リクエスト オブジェクトを作成し、アクセスするページの URL と検索テキストを指定します。次に、ページ サイズと遅延、およびリクエスト タイプ (POST または GET) を設定できます。最後に、send() メソッドを使用してリクエストを送信し、応答を保存します。応答は $response オブジェクトで取得できます。
3. 高度な使用法
上記の基本的な使用法に加えて、PhantomJS には探索可能な多くの高度な使用法もあります。例をいくつか示します。
<?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();
4. 結論
PhantomJS は強力なインターフェースレスです。テスト ツール 。開発者が Web 開発プロセス中にテストを自動化するのに役立ちます。 PHP で PhantomJS を使用すると、インターフェイスのないテスト スクリプトを簡単に作成し、ユーザー アクションをシミュレートできます。開発者にとってもテスターにとっても、テストの効率は大幅に向上します。
以上がPHP でのインターフェイスレス テストに PhantomJS を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。