🎦

Splunk SyntheticsのChrome Recorder Importを試す

2023/09/01に公開

はじめに

Splunk SyntheticsのBrowser Testのシナリオ作成を簡単にする機能が追加されましたので早速試してみました。

Splunk Syntheticsとは

Splunk Observability Cloudで提供される機能の一つで、いわゆる外形監視です。
Browser Test(ユーザー動線のシミュレート)、API Test、Uptime Test(HTTP/TCP/UDP)が利用できます。

https://zenn.dev/symmr/articles/890105fe5dd883

Import a Google Chrome Recorder JSON file

Browser Testについては、これまでは上記のページの通り、HTML要素を個別に抽出しながらシナリオを組む必要がありましたが、Google Chrome Recorderで記録した操作をインポートできるようになりました。

https://docs.splunk.com/Observability/synthetics/browser-test/set-up-browser-test.html#import-a-google-chrome-recorder-json-file

手順はこのようになっています。インポートして、微修正して、保存しろ、とのこと。

  1. In Splunk Synthetic Monitoring, select Edit on an existing Browser test to open the test configuration page, or create a new test.
  2. Select Import.
  3. Upload the Google Chrome Recorder JSON file.
  4. If a step is not supported, you need to edit or delete the step in the test configuration page.
  5. (Optional) Add a name to each step.
  6. Save your changes.

Google Chrome Recorderとは

Google Chromeの標準機能でChrome 97以降で使用可能です。
ユーザーの操作を記録して再現することができるよという機能です。
https://developer.chrome.com/docs/devtools/recorder/

記録した操作をJSONでエクスポートできますので、それをSplunk Syntheticsでインポートしようということです。

Recoderで記録

それじゃあやってみましょう。
親切にも、Recorderの解説ページにデモサイトまで用意されていたのでありがたく使わせていただきます。

https://coffee-cart.app/

コーヒーを注文できるシンプルなサイトです。

F12で開発者ツールを開き、More tools > Recorder。

Create a new recordingして、

適当に名前を付けてStart rcording。これで操作が自動的に記録されます。

適当にコーヒーを選んで、、、ちゃんとレコーディングされていますね

cartクリックして、

ここからどうすんだと分かりにくかったですが、TotalをクリックしたらSubmitウインドウが開きましたので適当に値をいれてSubmitすると、

買えました。

End recording。
キャプチャ撮りながら操作したので激しくKey up/downが記録されちゃっています。

これ自体でもReplayできるようです。

Repayしてみて特に問題なければExport > JSON。

こんな感じで記録されていました。

{
    "title": "Coffee-cart test",
    "steps": [
        {
            "type": "setViewport",
            "width": 1295,
            "height": 1078,
            "deviceScaleFactor": 1,
            "isMobile": false,
            "hasTouch": false,
            "isLandscape": false
        },
        {
            "type": "navigate",
            "url": "https://coffee-cart.app/",
            "assertedEvents": [
                {
                    "type": "navigation",
                    "url": "https://coffee-cart.app/",
                    "title": "Coffee cart"
                }
            ]
        },
        {
            "type": "click",
            "target": "main",
            "selectors": [
                [
                    "aria/Cafe Breve"
                ],
                [
                    "[data-test='Cafe_Breve']"
                ],
                [
                    "xpath///*[@data-test=\"Cafe_Breve\"]"
                ],
                [
                    "pierce/[data-test='Cafe_Breve']"
                ],
                [
                    "text/espressosteamed milksteamed"
                ]
            ],
            "offsetY": 65.29583740234375,
            "offsetX": 154.03857421875
        },
...

SyntheticsのBrowser Testでインポート

無事エクスポートまでできたのでSyntheticsでインポートしてみます。

Browser testを新規に作成して、

名前つけてStepsのImportをクリック

ファイルをぽい

unsupported stepsの警告がでました。とりあえず進めてみると、

Key up/downがunsupportedでした。
消せばいいんでしょうが、数が多くてだるいのでRecorder作り直します、、、

・・・

作り直しました。
Submitの時に無意識のうちにTab keyを押してたのですが、少しなので良しとしましょう。

微修正(ステップ名の追加、個人情報の変数化など)

ステップを必要に応じて修正します。

ステップ名

オプションです。
それぞれのステップに名前を付けてあげると分かりやすくなります。

unsupported steps

Key Up/Downはゴミ箱アイコンで消しちゃいましょう。

その他のunsupported stepが発生した場合はファイルを修正すれば良いらしいのですが今回は遭遇しませんでした。
https://docs.splunk.com/Observability/synthetics/browser-test/set-up-browser-test.html#troubleshoot-unsupported-steps

個人情報の変数化

今回は名前とEmailだったので適当なダミー値で良かったですがログインでパスワードが必要なときに平文では保存したくないですよね。

そんなときは、右側の<をクリックしてVariableパネルを引き出し、Addをクリックし、

Variable nameを付けて、値を入力して、Conceal valueにチェックすれば隠せます。

作成した変数は{{env.<Variable name>}}で参照できます。

Selectorの適正化

これもオプションです。
SelectorとしてCSSやidを自動的に選択してくれます。
それでも十分かもしれませんが、もしページ変更やテストに対して、より頑健な要素や指定方法があれば直した方が良いでしょう。

実行

いい感じになりました。
とりあえず画面上部のTry nowをしてみます。

無事成功。もし失敗したらエラーメッセージに従って修正します。

Return to testして

LocationやFrequencyを選び、Submit。

テストが実行されるまで待ちましょう。

・・・

できました。

詳細を見ると、ウォーターフォールチャートや動画で確認できます。

まとめ

新規にリリースされたImport a Google Chrome Recorder JSON fileを試してみました。
なかなか使いやすいのではないでしょうか。

Discussion