Digital.ai での Appium テスト
Digital.ai を使用して、Appium テストにアクセシビリティ スキャンを追加しましょう!
DequeはDigital.aiと提携して、既存の自動テストワークフローにアクセシビリティテストを導入しました。Axe DevTools Mobileを使用して、Appiumテストにアクセシビリティスキャンを追加し、Digital.aiデバイスでテストを実行した後、Axe Developer Hubで結果を確認してください。
前提条件:
- Digital.ai Continuous Testing へのアクセス Digital.ai Continuous Testing
- Digital.ai Application Manager にアプリケーションをアップロード Digital.ai Application Manager
- Deque API キー
- Appium バージョン 2.11.3 以上でのテストの実行
- AxeUIAutomator または AxeXCUITest Appium ドライバーを使用したテスト (Digital.ai により事前インストール済み)
アクセシビリティ スキャンの実行方法
Digital.aiはそのAppiumサーバーにAxe Appiumドライバーを事前インストールしています。これらのドライバーにより、あなたのAppiumテストからアクセシビリティスキャンを実行できます。DequeのAxeUiAutomator2とAxeXCUITestドライバーはUiAutomator2とXCUITestドライバーからフォークされています。我々はこれらのドライバーのコア機能を変更せずにフォークしています。テストは期待通りに実行され、アクセシビリティスキャンを取る追加機能が加わります!
Appium テストをアクセシビリティ テスト用に構成するための主なステップは次のとおりです。
- オートメーション名をAndroidには
AxeUiAutomator2、iOSにはAxeXCUITestに設定してください。(Axeプレフィックスに注意してください。) - 認証には Deque API キーを提供します。
- アクセシビリティスキャンを取りたい各場所でスクリプト
mobile: axeScanを実行してください。 - Digital.aiデバイスでテストを実行した後、Axe Developer Hubで結果を確認してください。
設定をカスタマイズし、アクセシビリティスキャンの結果を最大限に活用してチームに最適に役立てる方法を学ぶには、Appium セットアップガイドを参照し、Appium サンプルテストの完全なリストを見てください。セットアップガイドと例は一般的なもので、Digital.aiとの統合に必要なすべての情報は含まれていません。
例
以下の例は、Digital.ai プラットフォームを使用したアクセシビリティ テスト用に Appium テストを設定する方法を示します。これらの例は Java で書かれていますが、Appium は複数のプログラミング言語をサポートしています。
Android
@BeforeMethod
public void setUp() throws MalformedURLException {
desiredCapabilities.setCapability("accessKey", ACCESS_KEY); // Digital.ai's Access Key
desiredCapabilities.setCapability("deviceQuery", "@os='android'");
desiredCapabilities.setCapability("appium:automationName", "AxeUiAutomator2");
desiredCapabilities.setCapability("app", "cloud:com.experitest.ExperiBank/.LoginActivity");
desiredCapabilities.setCapability("appPackage", "com.experitest.ExperiBank");
desiredCapabilities.setCapability("appActivity", ".LoginActivity");
desiredCapabilities.setCapability("appiumVersion", "2.16.2");
driver = new AndroidDriver(new URL("https://<your_cloud_url>/wd/hub"), desiredCapabilities);
Map<String, Object> settings = new HashMap<>();
List<String> tags = new ArrayList<>();
settings.put("apiKey", <DEQUE_API_KEY>); // Deque API Key
settings.put("projectId", <DEVHUB_PROJECT_ID>) // axe Developer Hub Project ID
settings.put("scanName", "Axe driver"); // a customized scan name to better identify scans within the dashboard.
settings.put("tags", tags); // an array of strings to apply to scans as tags.
driver.executeScript("mobile: axeScan", settings);
}iOS
@BeforeMethod
public void setUp() throws MalformedURLException {
desiredCapabilities.setCapability("accessKey", ACCESS_KEY); // Digital.ai's Access Key
desiredCapabilities.setCapability("deviceQuery", "@os='ios'");
desiredCapabilities.setCapability("appium:automationName", "AxeXCUITest");
desiredCapabilities.setCapability("app", "cloud:com.experitest.ExperiBank");
desiredCapabilities.setCapability("bundleId", "com.experitest.ExperiBank");
desiredCapabilities.setCapability("appiumVersion", "2.16.2");
driver = new IOSDriver<>(new URL("https://<your_cloud_url>/wd/hub"), desiredCapabilities);
Map<String, Object> settings = new HashMap<>();
List<String> tags = new ArrayList<>();
settings.put("apiKey", <DEQUE_API_KEY>); // Deque API Key
settings.put("projectId", <DEVHUB_PROJECT_ID>) // axe Developer Hub Project ID
settings.put("scanName", "Axe driver"); // a customized scan name to better identify scans within the dashboard.
settings.put("tags", tags); // an array of strings to apply to scans as tags.
driver.executeScript("mobile: axeScan", settings);
}