Web アプリケーションがますます複雑になるにつれて、ソフトウェア開発プロセス中に製品の品質を確保することがますます重要になります。自動テストは、ソフトウェア開発者がシステムの欠陥を迅速に特定し、テスト範囲を向上させるのに役立ちます。さらに、自動テストにより、テスト サイクルが短縮され、テスト コストが削減されます。 Selenium は、API を通じて Web アプリケーションとのユーザー操作をシミュレートできる、人気のある自動テスト ツールです。
この記事では、PHP を使用して Selenium に基づいた自動機能テストを作成する方法を紹介します。
Selenium と Selenium WebDriver
Selenium は、Web アプリケーションのユーザー インターフェイスのテストに使用できる自動テスト オープン ソース ツールです。 Selenium は、Selenium IDE、Selenium RC、Selenium WebDriver の 3 つの主要コンポーネントで構成されています。 Selenium IDE は Firefox ブラウザ用のプラグインおよび記録ベースのテスト ツールで、Selenium RC (リモート コントロール) は JavaScript で記述された自動テスト ツールです。 Selenium WebDriver は、Selenium ファミリの最新かつ最も強力なメンバーであり、複数のブラウザ (Chrome、Firefox、Safari など) とオペレーティング システム (Windows、Linux、Mac) をサポートする、一貫した広範なプログラミング インターフェイスを提供します。この記事では、Selenium WebDriver を使用します。
Selenium WebDriver は、PHP が API を使用してテスト用にブラウザを直接制御できるようにするサードパーティ ライブラリです。 WebDriver は、クリック、フォームの送信、ページ要素の検証などのブラウザーの動作を制御するために使用できる一連のコマンドを提供します。
PHPUnit を使用したテスト
PHPUnit は、開発者が単体テストと機能テストを作成できるようにする一般的な PHP テスト フレームワークです。この記事では、PHPUnit をテスト フレームワークとして使用します。
PHPUnit の使用を開始する前に、PHPUnit と Selenium WebDriver をインストールする必要があります。 PHPUnit は Composer を通じてインストールでき、Selenium WebDriver は公式 Web サイト (https://www.selenium.dev/downloads/) からダウンロードできます。次に、それを PHP 環境のインクルード パスに設定します。
最初の機能テストの作成
必要なソフトウェアと環境が揃ったので、最初の Selenium ベースの機能テストを作成できます。 Selenium WebDriver を使用して Web アプリケーションにログインするユーザーをシミュレートする「LoginTest」というテスト ケースを作成します。
まず、テスト クラスを定義する必要があります。次に、このテスト クラスにテスト メソッドを記述し、テスト メソッド内に WebDriver インスタンスを作成します。
例:
use PHPUnitFrameworkTestCase; use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverWebDriverBy; class LoginTest extends TestCase { public function testLogin() { //定义DesiredCapabilities $capabilities = DesiredCapabilities::chrome(); //创建WebDriver实例,我们将在Chrome浏览器中运行测试 $driver = RemoteWebDriver::create('http://localhost:9515', $capabilities); //开始测试 $driver->get('http://example.com/'); $driver->findElement(WebDriverBy::id('username'))->sendKeys('user1'); $driver->findElement(WebDriverBy::id('password'))->sendKeys('password1'); $driver->findElement(WebDriverBy::id('submit'))->click(); //验证测试结果 $this->assertEquals('http://example.com/home', $driver->getCurrentUrl()); //关闭WebDriver实例 $driver->quit(); } }
上の例では、テスト クラス「LoginTest」を定義し、その中に「testLogin」という名前のテスト メソッドを定義しました。テスト メソッドでは、DesiredCapabilities を介してテストが Chrome ブラウザーで実行されることを指定します。次に、WebDriver インスタンスを作成し、それを使用してテスト用の URL を開きました。この例では、ユーザー名とパスワードを入力し、送信ボタンをクリックしました。最後に、ページの URL が正しいことを確認して、テストが成功したことを証明します。最後に、WebDriver インスタンスをシャットダウンします。
このコードは、機能テストのために PHP で Selenium WebDriver を使用する方法を開発者に示します。開発者は、いくつかの簡単なコードを記述するだけで、Web アプリケーションとの対話を自動化し、自動テスト レポートを生成できます。
結論
Selenium は、Web アプリケーションのユーザー インターフェイスのテストに使用できる自動テスト ツールです。 Selenium WebDriver は Selenium ファミリの最新かつ最も強力なメンバーであり、複数のブラウザとオペレーティング システムをサポートする一貫した広範なプログラミング インターフェイスを提供します。人気の PHP テスト フレームワークである PHPUnit と組み合わせると、開発者は Selenium WebDriver を使用して自動化された機能テストを作成できます。この記事では、PHP で Selenium WebDriver を使用して自動機能テストを行う方法を説明しました。
以上がPHP での機能テストに Selenium を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。