PerfectoでのAppiumテスト
モバイルアプリケーションのアクセシビリティテストをAppiumで実行し、Perfectoでサポート開始!
DequeはPerfectoと提携し、既存の自動化テストワークフローにアクセシビリティテストを導入しました。Axe DevTools Mobileを使用して、Appiumテストにアクセシビリティスキャンを追加し、Perfectoデバイスでテストを実行してから、Axe Developer Hubで結果を確認します。
必要条件:
- アクセス: Perfectoの自動化テスト
- Deque API キー
- Appiumバージョン2.11.3以上で実行されるテスト
- AxeUIAutomatorまたはAxeXCUITest Appiumドライバーを使用するテスト
アクセシビリティスキャンの方法
Perfectoは、AppiumサーバーにAxe Appiumドライバーをプリインストールしています。これらのドライバーにより、Appiumテストからアクセシビリティスキャンを実行できます。DequeのAxeUiAutomator2およびAxeXCUITestドライバーはUiAutomator2およびXCUITestドライバーからフォークされています。これらのドライバーのコア機能を変更することなくフォークしています。テストは期待通りに実行され、アクセシビリティスキャンを行うための追加の機能が得られます!
アクセシビリティテストのためにAppiumテストを設定する主要な手順は以下です:
- 自動化の名前をAndroidの場合は
AxeUiAutomator2、iOSの場合はAxeXCUITestに設定します。(Axeプレフィックスに注意) - 認証のためにDeque APIキーを提供します。
- テスト内でアクセシビリティスキャンを行いたい箇所ごとにスクリプト
mobile: axeScanを実行します。 - Perfectoデバイスでテストを実行した後、Axe Developer Hubで結果を確認します。
構成をカスタマイズし、アクセシビリティスキャンの結果をチームに最適な形で活用する方法を学び、Appiumのサンプルテストの完全なリストを参照するには、Appiumのセットアップガイドを参照してください。セットアップガイドと例は一般的で、Perfecto統合に必要なすべてを含んでいるわけではありません。
例
以下のコードを参照し、PerfectoプラットフォームでのアクセシビリティテストのためにAppiumテストを設定し、アクセシビリティスキャンを実行してください。
プラットフォームに基づいてautomationName能力を設定してドライバーを有効にします。
Androidの設定
automationNameはAxeUiAutomator2に設定する必要があります。appPackageの値はテスト対象のAndroidアプリのパッケージ名です。
{
"automationName": "AxeUiAutomator2", // Note the 'Axe' prefix.
"appPackage": "<your-app-package>"
}iOSの設定
automationNameはAxeXCUITestに設定する必要があります。bundleIdの値はテスト対象のiOSアプリのバンドル識別子です。
{
"automationName": "AxeXCUITest", // Note the 'Axe' prefix.
"bundleId": "<your-app-bundle-id>"
}アクセシビリティのスキャン
Appiumは複数のプログラミング言語をサポートしています。以下のJavaScriptスニペットは、Axe DevTools MobileのAPIキーなど、Axe DevTools Mobileに必要な機能をテストスクリプトに追加する方法を示しています。スキャンのトレーサビリティを向上させるために、カスタム名を作成することができます。mobile: axeScanコマンドを使用してアクセシビリティスキャンをトリガーします。
const axeSettings = {
apiKey: '<deque-api-key>', // axe DevTools Mobile API key
projectId: '<devhub-project-id>', // Recommended: Use the Project ID you created in Developer Hub to upload results
scanName: '<your-scan-name-here>', // Optional: Customize the scan name
tags: ['tag-one', 'tag-two'] // Optional: Add tags, to more easily find and group scans
};
const result = await driver.execute('mobile: axeScan', axeSettings);