0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Playwright mcpを利用した自動テストツールを作成してみた

Posted at

はじめに

Playwright MCPが出てきて、GitHub Copilotなどに読ませて、ブラウザ操作等を行えると聞いて、これは、自動テストツールにできるのでは?と思い、やってみました。

調べてみるとすでに実施されている方がいたので、以下を参考に作成しています。感謝!

構成

非常に単純な作りです。agentからtoolsを呼び出して、終了するまで続ける形。

image.png

できたもの

ユーザーがクエリとして、操作内容を記載すると、それに対応するスクリーンショットを取得して、画面上に出してくれます。

ためしに以下のクエリで試してみました。

https://google.co.jpにアクセスしてスクリーンショットを取得、
Googleと入力してスクリーンショットを取得、
Enterキーで検索してスクリーンショットを取得してください。

image.png
image.png

3アクション程度でも10秒くらいかかります。ほとんどはAIリクエスト時間ですね。

POSTでのフォーム送信などができるのか、
Mdn Web docsさんのサンプルフォームを利用して確かめてみます。
シナリオは以下です。

1.https://mdn.github.io/learning-area/html/forms/your-first-HTML-form/first-form-styled.htmlにアクセスしてスクリーンショットを取得。
2.Nameに「テスト」を入力。
3.E-mailに「sample@example.com」を入力
4.Messageに「test1」を入力してスクリーンショットを取得。
5.Send your messageのボタンを押してスクリーンショットを取得

なお、このサイトでは、POSTが許可されていないので405エラーが表示されます

image.png
image.png

うまくいっています。なお、gpt-4.1-miniだと、正しく項目の場所を選べず、
E-mailに「テストsample@example.com」と書いてしまうようです。
gpt-4.1でもリクエストを操作ごとに区切らないと間違えるようです。

ポイント

キャプチャをシステムメッセージに組み込めなかったので、ユーザクエリに必ず「スクリーンショットを取得」と書いて、何とかしています。

また、gpt-4.1-nanoだとスクリーンショット取得を飛ばしたりするので、gpt-4.1-mini以上が必須、正しく操作させるためにはgpt-4.1以上が必要そうです。(gemini-2.0-flashでも試してみましたが、gpt-4.1-miniと同様の結果になっています。)

キャプチャがリクエストトークン数を圧迫するので、スクリーンショットを取得した後はキャプチャデータをリクエストから削除して、トークン数増加を抑えています。
(とはいえ、数アクションが限界で、10アクションくらいになるとレスポンスが数十秒帰ってこないので、もっとトークン数を減らさないと実用には足らないように思います。)

ソースコード

ソースコードはこちらです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?