Open4
Datadog Browser Test を Cloud Build から実行したい
目的
- Cloud Build を使ったデプロイ時に Datadog Browser Test を実行して E2E テストを行いたい
datadog-ci コマンドをインストール
datadog-ci
コマンドを使うことで Synthetics の API を叩ける。
npm install --global @datadog/datadog-ci
テストの実行
datadog-ci synthetics run-tests
コマンドで Synthetics のテストを実行できる。
**/*.synthetics.json
というテストファイルを作成して実行する方法もあるようだが、今回は Datadog の UI で事前に作成したテストを利用する。
--public-id <TEST_ID>
オプションを指定することで事前に定義済みのテストを実行できる。
<TEST_ID>
は Datadog のテスト詳細の URL から確認できた。
コマンドの実行結果は以下の通り
$ datadog-ci synthetics run-tests --public-id n5v-sy8-vy6
(node:40234) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Finding files matching /Users/takumi.kadowaki/ghq/github.com/3-shake/reckoner-cdp/rdap2/{,!(node_modules)/**/}*.synthetics.json
No test files found.
[n5v-sy8-vy6] Found test "[POC] リリース後の動作確認" (1 config override)
View pending summary in Datadog: https://app.datadoghq.com/synthetics/explorer/ci?batchResultId=2ac68e00-78e1-4225-b28a-ce622e80a0eb
✓ [n5v-sy8-vy6] [POC] リリース後の動作確認 - location: Tokyo (AWS) - device: chrome.laptop_large
⎋ Total duration: 298345 ms - View test run details: https://app.datadoghq.com/synthetics/details/n5v-sy8-vy6/result/8066359783548955188?from_ci=true
=== REPORT ===
Took 350456ms
View full summary in Datadog: https://app.datadoghq.com/synthetics/explorer/ci?batchResultId=2ac68e00-78e1-4225-b28a-ce622e80a0eb
Continuous Testing Summary:
• Test Results: 1 passed, 0 failed
• Max parallelization configured: 1 test running at the same time
• Total Duration: 5m 50s
Increase your parallelization to reduce the test batch duration: https://app.datadoghq.com/synthetics/settings/continuous-testing
その他オプション
--failOnCriticalErrors
オプションはテストをトリガーできなかった場合やテスト結果を取得できなかった場合にエラーにする。
テストが見つからなかった場合にエラーにする --failOnMissingTests
や、タイムアウト時にエラーにする --failOnTimeout
と組み合わせるのが良さそう。
$ datadog-ci synthetics run-tests --failOnCriticalErrors --failOnMissingTests --failOnTimeout --public-id n5v-sya-zzz
(node:57059) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Finding files matching /Users/takumi.kadowaki/ghq/github.com/3-shake/reckoner-cdp/rdap2/{,!(node_modules)/**/}*.synthetics.json
No test files found.
[n5v-sya-zzz] Test not found: query on https://api.datadoghq.com/api/v1/synthetics/tests/n5v-sya-zzz returned: "Synthetics test not found"
ERROR: some tests are missing
n5v-sya-zzz
$ echo $?
1