PerfectoとXCUITest

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Perfectoのデバイス上でiOSアプリのアクセシビリティ問題をテストします。

Not for use with personal data

PerfectoでUIテストを実行し、デバイス間のアプリのアクセシビリティ状態を包括的に理解しましょう。

必要要件:

  • Perfecto Enterprise Private Cloud

前提条件

  1. あなたのUIテストは、iOS用のAxe DevTools Mobileと統合されています。以下をご覧ください: クイックスタートガイド をご覧ください。
  2. アプリを配布用に準備します。本物のデバイス上でPerfectoでテストを行うため、アプリとUIテストターゲットを設定することでプロセスがスムーズになります。
  3. インストール Gradle

サンプルプロジェクト

例を探していますか?当社のサンプルiOSプロジェクトはテストのための統合が準備されています。

  1. 前提条件を確認してください。

  2. Githubのサンプルプロジェクトをダウンロード

  3. 開発チームをアプリとUITestターゲットに追加するために、Xcodeプロジェクトファイルを開きます

  4. Axe DevTools for Mobile APIキーLogin.swiftに追加

  5. 次の場所の値をあなたのPerfectoクラウドに合わせて調整します:

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - cloudURLsecurityTokendeviceNameの値を確認してください:
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. ターミナルウィンドウを開き、cd を入力してから、Finderからaxe-devtools-ios-sample-appをターミナルウィンドウにドラッグアンドドロップします。リターン/エンターキーを押してください。

  7. 同じウィンドウで、sh perfecto.shと入力します。リターン/エンターキーを押してください。

Perfecto統合に使用されるサンプルプロジェクトには3つのファイルがあります:perfecto.shconfigFile.json、およびbuild.gradle

PerfectoをXCUIテストに追加する

セットアップ

注: すべての3つのファイルはプロジェクトのルートに配置されていることを期待しています。

  1. Perfectoのプラットフォームでテストを実行するためのシェルスクリプトを作成します。APP_LOCATIONAPP_NAME、およびCLOUDNAMEの値をあなたのアプリケーションとPerfectoクラウドに合わせて調整してください。

    APP_LOCATION="DerivedData/Build/Products/Debug-iphoneos"
    APP_NAME="axe-devtools-ios-sample-app"
    CLOUDNAME="<<perfecto-cloud-name>>"
    
    TOKEN="<<security-token>>"
    JOBNUMBER="<<job-number>>"
    
    rm -rf *.app
    # Prepare app files
    gradle buildForRealDevice
    mv $APP_LOCATION/$APP_NAME.app .
    mv $APP_LOCATION/"$APP_NAME"UITests-Runner.app .
    # Run on Perfecto cloud
    gradle perfecto-xctest -PconfigFileLocation=configFile.json -PcloudURL=$CLOUDNAME.perfectomobile.com -PsecurityToken=$TOKEN -PjobNumber=$JOBNUMBER --stacktrace --debug
    rm -rf DerivedData
  2. Gradleファイル、build.gradleを追加します。最後のセクションをあなたのアプリケーションの値に合わせて更新してください。

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {
        repositories {
            def flatDirPath = project.hasProperty('flatDirPath') ? project.getProperty('flatDirPath') : ''
            if(flatDirPath != '') {
                flatDir {
                    dirs flatDirPath
                }
            } else {
                maven {
                    url "https://repo1.perfectomobile.com/public/repositories/maven/"
                }
            }
        }
    
        dependencies {
            classpath "com.perfectomobile.instrumentedtest.gradleplugin:plugin:+"
        }
    }
    
    apply plugin: 'com.perfectomobile.instrumentedtest.gradleplugin'
    
    perfectoGradleSettings {
        configFileLocation "configFile.json"
    }
    
    tasks.register('cleanPreviousBuild', Exec) {
        workingDir projectDir
        commandLine "bash", "-c", "rm -fr *.xctestproducts dd"
    }
    
    tasks.register('buildForRealDevice') {
        dependsOn cleanPreviousBuild
        doLast {
            exec {
                commandLine "bash", "-c", "xcodebuild build-for-testing " +
                        " -destination generic/platform='iOS' " +
                        " -configuration Debug" +
                        " -scheme axe-devtools-ios-sample-app" +
                        " -target axe-devtools-ios-sample-appUITests" + 
                        " -sdk iphoneos" + 
                        " -derivedDataPath DerivedData/  -quiet -allowProvisioningUpdates" 
            }
        }
    }
  3. Perfectoの構成JSONを追加し、cloudURLsecurityTokenappPathtestAppPath、およびdeviceNameの値をあなたのPerfecto認証、アプリケーション、および利用可能な実デバイスUUIDに合わせて確認してください。

    上記のbuild.gradleconfigFile.jsonという名前の構成ファイルを探しています - 異なる名前を使用している場合は必ず更新してください。

    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      "appPath": "axe-devtools-ios-sample-app.app",
      "testAppPath": "axe-devtools-ios-sample-appUITests-Runner.app",
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      "tags": [
        "xcuitest",
        "sample"
      ],
      "projectName": "Axe-XCUITest",
      "projectVersion": "v1-test",
      "jobName": "AXE-XCUITEST-LATEST",
      "jobNumber": 1,
      "branch": "master",
      "failBuildOnFailure": false,
      "installationDetails": {
        "preCleanUp": true,
        "resign": true
      },
      "postExecution": {
        "uninstall": false
      },
      "acquireDeviceRetryNumber": 1,
      "acquireDeviceRetryInterval": 200,
      "debug": true,
      "runUnitTests": true,
      "runUiTests": true,
      "shard": false,
      "takeScreenshotOnTestEnd": true,
      "testTimeout": "60000"
    }

実行

プロジェクトをセットアップしたら、シェルスクリプトを実行してPerfectoクラウドでテストを実行します。

ローカルで確認:

  1. ターミナルでプロジェクトを開きます。
  2. sh perfecto.shを入力し、エンターキーを押します。
  3. Perfecto Cloudのテスト分析を開き、最新のレポートを確認してください。

役立つリンク: