ツール 2023-01-31

Datadog continuous testingについて調べたことメモ

Datadog継続的テスト機能を解説。ノーコードE2E、自己修復テスト、クロスブラウザ対応、CircleCI・Github Actions連携で信頼できるテスト運用を実現します。

Read in: en
Datadog continuous testingについて調べたことメモ

概要

Datadog continuous testingについて調べたことのメモ。

Datadog continuous testingとは

E2Eの運用を楽にし、テストの信頼性を保つ仕組みを備えている、ようだ。

導入

Chrome拡張のDatadog test recorderが必要。

それ以外の準備は不要ですぐに利用開始できる。

テスト作成

  1. Browser Testを作成
  2. テストケースをレコーディングする

レコーディングする際は、popupで開くほうが良さそう(レコーディング画面内のUIはiframeなので)。

テスト設定

テスト実行に関するあらゆるオプションの設定。

Basic認証の対応ができたり、Cookie、リクエストヘッダの設定などもできる。

cf. テストコンフィギュレーション

テスト項目

Browser Testsで利用できるテスト項目についてそれぞれ見てみる。

cf. https://docs.datadoghq.com/ja/synthetics/browser_tests/actions/?tab=%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%A7%E8%A6%81%E7%B4%A0%E3%82%92%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B

Assertion

DOM周りをチェックできるアサーション。

遷移系。

Special Actions

UIに関する操作系。

Variables

任意の変数が定義できる。

Subtest

既存のブラウザテストを別のブラウザテストの中でも再利用できる。 最大2階層まで入れ子にして再利用することができる。

HTTP Request

ブラウザテスト内でHTTPリクエストを実行できる。

自己修復

実際どれくらいのまでの修復が可能なのか細かいところはわかってない。 UIの変更があった際に自動的に変更を検知して探索するとは書かれている。

If there is a UI change that modifies an element (e.g., moves it to another location), the test will automatically locate the element again based on the points of reference that were not affected by the change. Once the test completes successfully, Datadog will recompute, or “self-heal,” any broken locators with updated values. This ensures that your tests do not break because of a simple UI change and can automatically adapt to the evolution of your application’s UI. In the next section, we’ll look at how you can fine-tune your test notifications to ensure that you are only notified of legitimate failures.

cf. https://www.datadoghq.com/ja/blog/test-maintenance-best-practices/

あくまで”単純なUIの変更”に限るので、あまり期待を高めないようにするのが良さそう。

テストが正常に実行されると、ブラウザテストは壊れたロケータを更新された値で再計算 (または「自己修復」) し、単純な UI の更新でテストが壊れることがなく、テストがアプリケーションの UI に自動的に適応することを保証します。

cf. https://docs.datadoghq.com/ja/synthetics/browser_tests/advanced_options/

並列化

Syntheticの設定から並列化を設定できる。

cf. https://docs.datadoghq.com/ja/continuous_testing/settings/

ダッシュボード

Explore

Synthetic MonitoringとContinuous Testingの結果(CI Batches)およびテスト実行結果(Test Runs)を検索できる。 cf. https://docs.datadoghq.com/ja/continuous_testing/explorer/?tab=cibatches

Test coverage

RUM から収集したブラウザデータと Synthetic ブラウザのテスト結果を使用して、RUM アプリケーションのテストカバレッジ全体に関する洞察を提供 cf. https://docs.datadoghq.com/ja/synthetics/test_coverage/

どこがテストされていないのかといったことが分析できそう。テストケースの網羅性の改善に役立ちそう。 カバレッジの推移を追っていく

CIインテグレーション

Synthetic testsは各種CIと連携できる。

用意されているインテグレーション。

cf. https://docs.datadoghq.com/continuous_testing/cicd_integrations/

コード化

cf. https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/synthetics_test

DOMベースのテストになるのでコードからテストケースを起こすということは厳しいと思う。。。

通知

Syntheticsとしての管理下にあるので通知周りは特に懸念なし。

コスト

1000回/$12(オンデマンドだと$18) cf. https://www.datadoghq.com/ja/pricing/?product=continuous-testing#continuous-testing

安価だと思う。 1000回以下は無料??

シナリオ管理方法

シナリオが沢山用意されたときに破綻しないか?

テストシナリオの管理方針としては、

テストケース自体の管理方針としては、DRYにテストを作っていくことが推奨されており、サブテストを積極的に利用したほうが良さそう。 cf. https://docs.datadoghq.com/ja/synthetics/browser_tests/actions/?tab=%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%A7%E8%A6%81%E7%B4%A0%E3%82%92%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B#%E3%82%B5%E3%83%96%E3%83%86%E3%82%B9%E3%83%88

気になった点メモ

参考

Tags: Datadog
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ サポート

このブログを応援していただける方は、以下からサポートをお願いします。いただいたサポートはブログ運営・技術研鑽に活用します。


関連記事