mablのE2Eパフォーマンステスト(負荷テスト)を試してみる

Shohei Oda
Dec 15, 2023

--

みなさんこんにちは。mablおだしょーこと小田祥平です!本投稿は mabl Advent Calendar 2023 Day 16(12/16) 向けの記事となります。

先月弊社の1st Party カンファレンスである「mabl Experience’23 Japan」を開催しました。米国では毎年、日本でも昨年から開催されているこのカンファレンスでは、mablの最新Updateかつプロダクトにインパクトがあるものをキーノートなどで発表し、早期アクセスとしてご参加いただいている皆さまにもすぐに使える環境を提供しています。

今年は目玉として、iOSやAndroidのネイティブモバイルアプリテスト、API及びE2Eパフォーマンス(負荷)テスト、そしてLLMを活用した自動修復機能のUpdateについて発表がありました。

ということで、さっそく自分も試してみたいなと思い、今回はE2Eパフォーマンステストについて検証してみます…!!
(おだしょーならモバイル書くんじゃないの??と思った方、スマンな。mabl Blogに書くことがもう決まっているんだ… ←)

さて、ではさっそくmablデスクトップアプリにログインしてみるのですが、そもそもアカウントを持っていない方は、まずASCIIさんに寄稿しているこちらの記事をご参照ください。全6回のシリーズ記事となっており、テストの自動化の必要性から、実際にmablを使ってE2Eテスト自動化APIテスト自動化アクセシビリティテストの自動化、そして様々なDevOpsツールと連携したCI/CDインテグレーションの具体的な方法まで書いてあります。ぜひご一読ください!

前置きが長くなったのでそろそろ始めますね??←
デスクトップアプリへのログイン後、まずは「ワークスペース」を選択して、「LABS」に行きましょう。いくつかの早期アクセスメニューが並んでいます。今回は「APIパフォーマンステストを試す」をOnにします。これにより各種パフォーマンステスト自動化の作成が可能となります。

「APIパフォーマンステストを試す」をOnにしましょう!

そしていつも通り「テスト作成」を試みます。メニューに「パフォーマンステスト」が選択可能な状態になっていることを確認して、選択します。
設定項目画面に遷移するので、ちょっと色々眺めてみましょうか。

社員なのにトライアルユーザーなんだ?というツッコミはなしで← ちなみに最大1000ユーザーまで仮想ユーザーを設定できます!

「名前」「ラベル」「説明」この辺はこれまでmablを使ってきた方ならお馴染みの設定項目ですね。必須項目は「名前」のみなので、適当に名前をつけましょう!

続いてテストの追加となりますが、mablでは過去に作成したE2EテストやAPIテストを流用することが可能です!再度作成する手間が省けて非常に時短ですね~!良い…!もちろんプラン(テストを複数個入れておける箱のようなもの)からインポートも可能です。

「ブラウザテスト」を選択すると、画面が変化して更なる設定を求められます。とりあえず昔に作ったログイン画面を検証するテストを使いまわしてみるか…?
ちなみに、お手元で簡単に試したいときは mablのSandboxサイトがオススメです。mablで提供しているE2Eテストの機能は網羅しているので、テストサイトどうしよ~?なんて方は是非ご活用ください!

いつだかに作ったテスト。パスワードを入力し忘れてログインボタンを押したら「password required」と画面に表示されることを確認するアサーション設定を入れているようです(過去の自分が)
ブラウザテストを追加しても、更に別のテストも追加できる模様。テスト時間とランプアップタイム(徐々にユーザーを増やす機能)の時間設定なんかもありますね

「データテーブル」は同一のテスト内で異なるデータセットを使ってテストをしたい時に使用します。「クレデンシャル」はいわゆるユーザー名とパスワードを予め設定しておけば、自動で入力してログインし、テストを続行できる機能ですね。少し前にMFAにも対応(早期アクセス)したので、活用できるシチュエーションが増えました。一旦なしでもテストは作れるので、今回は無視します。

そして「負荷の構成」。1000名の仮想ユーザーまで作成可能ですが、社員なのになぜか未だにトライアルユーザーな筆者は最大25ユーザーまで…orz (←なんか懐かしくない??) まぁええやろ!25ユーザーでも問題ない!(少なくとも本記事では)

その下を見ると「失敗基準」、失敗基準…?失敗しないが??←??
…おそるおそる押してみると何やらパフォーマンステストの合否判定基準を決めろということですね。

3つの選択肢が見えます

メトリックの詳細は以下をご参照のこと。

テストの失敗率を数字で入力可能
コアウェブバイタル」はリンク先のドキュメントが参考になります。なんかすごそうだから今回はこれでやってみるか??(←適当が過ぎる)
しきい値設定で「平均」と「パーセンタイル」を設定可能
テストステップのどこを見るか?も柔軟に設定可能な模様。個別のステップにもフォーカスできるっぽい

今回はGoogleのドキュメントにも説明がある「Largest contentful paint」を失敗基準として設定してみます。なによりわかりやすいですよね。

読み込み時間が遅いだけでユーザーは離反するのは界隈では常識なので、今回は素直に「Largest contentful paint」を判定基準にしてみましょう
俺は自分に厳しい漢なので、甘えは許さない…! (良い子のみんなは記事執筆を深夜帯に行わないようにしよう!)

さて、準備が概ね整ったので、実行していきましょう!作成したテストを「保存」すると以下の画面に遷移するので、「テスト実行」を行います。

設定した内容が反映されています。再編集も可能です
アプリケーションを再度選択して、「テストを1回実行」を選択。

上記の操作を行うとすぐに「開始しています」と表示されるので、それを選択するとテストの様子がmablデスクトップアプリ上に表示されます。

負荷生成中… 最大5分程かかるようですね。とりあえずカフェオレ飲んでます(´Д` )gkgk

画面を眺めているとリアルタイムに生成されたユーザーたちが負荷をかけていっている様子を確認できます。ランプアップを設定しているとユーザーが徐々に増えていく様子が観測できてなかなかおもしろいですね。

17人まで増えてきた!いいぞ!もっと負荷を!オラに負荷をくれ!! (AM2:15)

設定した5分を経過して、テストが完了しました。無事に成功しています。折れ線グラフを眺めると3:15あたりで4.875秒程かかったようですが、それ以外は安定した読み込みで平均値で見たときには失敗基準をクリアしているようです。指標の追加もできるので、失敗基準に設定した以外の数値もグラフ表示させることも可能です。

メトリクスには他にもFirst contentful paintや、Time to first byte、DOMコンテンツロード、ステップ期間なども表示可能
ステップ毎の時間も詳細に表示されています

(せっかく最近キーボードを新調したのに) ほぼマウス操作だけで簡単にパフォーマンステストを実行できました。先に解説をした通り、今回は簡単に1つだけのパフォーマンステストを作成実行しましたが、APIテストを含む複数のパフォーマンステストを同じテスト内で作成することも可能です。失敗基準も柔軟に作成、変更できます。
従来より提供しているブランチを切るといった操作も可能です。テスト実行結果をExcelに吐き出す機能もついているので、テスト結果をお客様に報告する際もそのまま使えそうですね。

今回はE2Eパフォーマンステストにフォーカスしましたが、是非お手元の環境でAPIパフォーマンステストやそれらの複合パフォーマンステストを試してみてください!

For Your Information!
2週間の無料トライアル: https://www.mabl.com/ja/trial-registration
mabl University: https://university.mabl.com/page/ja
mabl Skills Certifications (認定資格制度): https://university.mabl.com/page/mabl-skills-certifications-ja

--

--

No responses yet