AWS Device Farm でのカスタムテスト環境での作業 - AWS Device Farm

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Device Farm でのカスタムテスト環境での作業

デフォルトの標準テスト環境に加えて、AWS Device Farm では、自動テスト用のカスタム環境を設定することもできます。詳細については、「テスト環境」を参照してください。

カスタムの自動テスト環境は、YAML 形式のテスト仕様 (テストスペック) ファイルを使用して設定することができます。Device Farm には、サポートされているテストタイプごとに、デフォルトのテストスペックが用意されています。デフォルトのテストスペックはそのままに使用するか、必要に応じて編集することができます。テストスペックファイルを編集した場合は、後の実行に備えて保存することができます。

詳細については、「」を参照してください。カスタムテスト仕様のアップロードAWS CLIおよびの作成tエストrunDevice Farm

テストスペック構文

YAML テストスペックファイルの構造を表します。

version: 0.1 phases: install: commands: - command - command pre_test: commands: - command - command test: commands: - command - command post_test: commands: - command - command artifacts: - location - location

テストスペックには次のものが含まれています。

version

Device Farm でサポートされているテストスペックバージョンが反映されます。現在のバージョン番号は 0.1 です。

phases

このセクションには、テストラン中に実行されるコマンドのグループを含みます。

許可されるテストフェーズ名は次のとおりです。

install

オプション。

Device Farm でサポートされているテスト用フレームワークの依存関係はデフォルトでインストールされています。このフェーズには、追加コマンドが含まれます (インストール時に Device Farm が実行するコマンドがある場合)。

pre_test

オプション。

自動テストラン前に実行されたコマンド (ある場合)。

test

オプション。

自動テストラン中に実行されたコマンド。テストフェーズでいずれかのコマンドが失敗した場合、そのテストは失敗としてマークされます。

post_test

オプション。

自動テストラン後に実行されたコマンド (ある場合)。

artifacts

オプション。

Device Farm は、カスタムレポートやログファイル、イメージなどのアーティファクトをここの指定された場所から収集します。ワイルドカード文字はアーティファクトの場所の一部としてサポートされていないため、ロケーションごとに有効なパスを指定する必要があります。

これらのテストアーティファクトは、テストランでデバイスごとに表示されます。テストアーティファクトの取得方法については、「カスタムのテスト環境でアーティファクトを使用する」を参照してください。

重要

テストスペックは、有効な YAML ファイルとしてフォーマットされる必要があります。テストスペックのインデントまたはスペースが無効の場合は、テストランが失敗する可能性があります。タブは YAML ファイルでは使用できません。テストスペックが有効な YAML かどうかをテストするには、YAML validator を使用します。詳細については、「YAML のウェブサイト」を参照してください。

テストスペックの例

Appium Java TestNG テストランを設定する Device Farm YAML テストスペックの例を表します。

version: 0.1 # Phases are a collection of commands that get executed on Device Farm. phases: # The install phase includes commands that install dependencies that your tests use. # Default dependencies for testing frameworks supported on Device Farm are already installed. install: commands: # By default, Appium server version used is 1.7.2. # You can switch to an alternate supported version from 1.6.5, 1.7.1, 1.7.2, 1.8.0 or 1.8.1 by using a command like "avm 1.7.1" # OR # To install a newer version of Appium use the following commands: # - export APPIUM_VERSION=1.8.1 # - avm $APPIUM_VERSION # - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js # The pre-test phase includes commands that setup your test environment. pre_test: commands: # Setup environment variables for java - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TESTNG_JAR - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TEST_PACKAGE_PATH/* - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TEST_PACKAGE_PATH/dependency-jars/* # We recommend starting appium server process in the background using the command below. # Appium server log will go to $DEVICEFARM_LOG_DIR directory. # The environment variables below will be auto-populated during run time. - echo "Start appium server" - >- appium --log-timestamp --device-name $DEVICEFARM_DEVICE_NAME --platform-name $DEVICEFARM_DEVICE_PLATFORM_NAME --app $DEVICEFARM_APP_PATH --udid $DEVICEFARM_DEVICE_UDID --chromedriver-executable $DEVICEFARM_CHROMEDRIVER_EXECUTABLE >> $DEVICEFARM_LOG_DIR/appiumlog.txt 2>&1 & - >- start_appium_timeout=0; while [ true ]; do if [ $start_appium_timeout -gt 30 ]; then echo "appium server never started in 30 seconds. Exiting"; exit 1; fi; grep -i "Appium REST http interface listener started on 0.0.0.0:4723" $DEVICEFARM_LOG_DIR/appiumlog.txt >> /dev/null 2>&1; if [ $? -eq 0 ]; then echo "Appium REST http interface listener started on 0.0.0.0:4723"; break; else echo "Waiting for appium server to start. Sleeping for 1 second"; sleep 1; start_appium_timeout=$((start_appium_timeout+1)); fi; done; # The test phase includes commands that start your test suite execution. test: commands: # Your test package is downloaded in $DEVICEFARM_TEST_PACKAGE_PATH so we first change directory to that path. - echo "Navigate to test package directory" - cd $DEVICEFARM_TEST_PACKAGE_PATH # By default, the following command is used by Device Farm to run your Appium TestNG test. # The goal is to run to your tests jar file with all the dependencies jars in the CLASSPATH. # Alternatively, You may specify your customized command. # Note: For most use cases, the default command works fine. # Please refer "http://testng.org/doc/documentation-main.html#running-testng" for more options on running TestNG tests from the command line. - echo "Start Appium TestNG test" - java -Dappium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output -verbose 10 # To run your tests with testng.xml file, use the following sequence: # Note: you don't have to unzip your test jar unless you have xml file with custom name # 1. Your testng.xml is inside the test jar after packaging step. Unzip it using commands: # - echo "Unzipping TestNG tests jar" # - unzip *-tests.jar # 2. Run your TestSuite by specifying the unzipped testng.xml using commands: # - echo "Start Appium TestNG test" # - java org.testng.TestNG -d $DEVICEFARM_LOG_DIR/test-output testng.xml # The post test phase includes are commands that are run after your tests are executed. post_test: commands: # The artifacts phase lets you specify the location where your tests logs, device logs will be stored. # And also let you specify the location of your test logs and artifacts which you want to be collected by Device Farm. # These logs and artifacts will be available through ListArtifacts API in Device Farm. artifacts: # By default, Device Farm will collect your artifacts from following directories - $DEVICEFARM_LOG_DIR