ソフトウェアテスト業界が急速に進化している中で、PlaywrightはWeb UIテストを自動化する開発者向けの人気フレームワークとして登場しました。しかし、組織が拡大し、アプリケーションがより複雑になり、変更の頻度が上がるにつれ、スクリプトによるテスト自動化では、テストのメンテナンスや、メールやPDFのテスト、データベース接続、多要素認証(MFA)などの複雑なテストシナリオに大きな課題が生じることが増えてきました。
2024年11月20日に開催した mabl Experience 2024 Japan では、mablの品質に対する最新のアプローチとPlaywrightとの連携により、ソフトウェアテストへの取り組みの強化、コラボレーションの改善、そしてチームがより大規模なテストカバレッジを達成するサポートができることを紹介しました。本ブログでは、その内容について掘り下げていきます。
Playwrightが開発者に人気の理由
上の図からも読み取れるように、Playwrightの人気は最近急上昇しており、開発者の中での普及率ではSeleniumとCypressを上回っています。これは単なる偶然ではなく、いくつかの要因によってもたらされたものです:
- 最新のアプローチ:Playwrightは、Seleniumを大幅にアップグレードし、より高速な実行、クロスブラウザのサポート、自動待機、さらにより直観的なAPIを提供しています。
- 強力なコミュニティによるサポート:マイクロソフトの支援を受けているPlaywrightは、活発な開発、活気のあるオープンソースコミュニティ、エンタープライズグレードの信頼性を備えています。
- 開発者主導のテスト:効率性を追求するにつれ、多くの企業がテスト業務を開発者に移行しています。Playwrightのコードファーストのアプローチは開発者のワークフローと完璧に一致しており、開発者が品質業務までを担うことを可能にします。
Playwrightは協力なツールではあるが、万能ではない
Playwrightには数多くのメリットがありますが、スクリプトによるテスト自動化だけに頼っていると、アプリケーションが成長し、変更を重ねるにつれてボトルネックが生じる可能性があります。下の図から、Playwrightによってテストが網羅する範囲は直線的に増加するかもしれませんが、それらのテストのメンテナンスに必要な労力も指数関数的に増加することがお分かりいただけるでしょう。 その結果、開発に追いつくために新しいテストを作成するのではなく、壊れたテストの修正にチームの時間の大部分が費やされる状況にすぐに陥る可能性があります。 Playwrightのみで網羅的なテストを構築するには、数か月、あるいはそれ以上がかかるかもしれません。
Playwrightのみを採用すると、以下の課題に直面する可能性があります:
- ハイスキル人材が必要:Playwrightテストスクリプトの作成とメンテナンスには、専門的なスキルが必要となることが多く、これに精通した開発者やSDETを雇用し、維持するためのコストがかかります。
- テスト作成に時間がかかる:スクリプトによる自動化で包括的なテストスイートを構築するには、多大な時間が必要となり、開発速度や市場投入までの時間に影響を及ぼす可能性があります。
- メンテナンス業務の増加:アプリケーションが成長し、テストスイートが拡大するにつれ、スクリプト化されたテストのメンテナンスはますます困難になります。テストの破損数が増加することで、常に目を配る必要性も高まり、スケーラビリティの妨げとなります。
では、もしすでにPlaywrightに多額の投資を行っている場合はどうでしょうか? これらの課題を対処し、テスト自動化の取り組みを効果的に拡大するにはどうすればよいのでしょうか?
mablでPlaywrightの潜在能力を活かし、チームを強化する
Playwrightとmablを連携させれば、チームはPlaywrightのスキルとテストスイートを活用しながら、mablのインテリジェントなテスト自動化プラットフォームのメリット両方を最大限に活用できます。開発者はPlaywrightで信頼性の高いテストを構築し続け、mablの高度な機能を活用して複雑なシナリオを簡素化することができます。また、他のチームメンバーもmablのローコードインターフェースを使用して、品質向上に貢献することができます。
既存のPlaywrightへの投資を活用する
mablはPlaywrightテストとシームレスに連携できるため、既存の設定を継続しながら、mablの高度な機能を利用することができます。テストを書き直したり、使い慣れたワークフローを変更する必要はありません。
開発者をサポートし、テストの実践範囲を拡大する
mabl for Playwright を使用すると、開発者は Playwright テストを簡単に拡張して、複雑なシナリオをカバーすることができます。 メールテスト、PDF検証、AIによるアサーションなどを簡単に組み込むことができます。
mablでテスト環境を統一する
Playwrightをmablと統合することで、品質に関する統一されたレポートを提供します。両プラットフォームからのテスト結果がmablのダッシュボードに集約されるため、すべてのテスト作業における品質の全体像を把握することができます。
mabl による Playwright テストの強化
mablの高度なテスト機能を統合することで、Playwrightテストの機能を拡張できます。 まず、@mablhq/playwright-tools パッケージをインストールしてください。これで、以下のmabl機能をPlaywrightのテストスイートにシームレスに組み込むことができます
- Eメールテスト:Eメールのワークフローを検証するための一時的または固定のEメールアドレスを作成および管理します。
- 生成AIによるアサーション:画像、テキスト、チャットボットのやり取りを検証するための複雑なアサーションを簡単に設定できます。
- ログインシナリオとMFA:2要素認証を必要とするものも含め、テスト用の認証情報をmabl内で直接、安全に保存および管理できます。
- データベースクエリ:データベースドライバーや複雑なネットワーク構成を必要とせずに、テスト環境のデータベースとやり取りし、検証できます。
- PDFテスト:PDF ドキュメントを開き、テスト可能な HTML として検証します。
例えば、PlaywrightのテストにAIによるアサーションを追加するのはとても簡単です:
// Create a prompt to supply to the Gen AI tool(生成AIツールに渡すプロンプトを作成する)
const prompt = `Please validate that the web page you are looking at is a marketing page for a company named mabl which does automated UI testing. Also validate that there are no broken images on the page`;
// Supply the Playwright Page to the evaluate function so mabl can extract a screenshot and other information to use with the prompt (評価関数に Playwright ページを指定することで、mabl がスクリーンショットやその他の情報を抽出し、プロンプトで使用できるようになる)
const result = await mabl.evaluateGenAiAssertion(page, prompt);
// The result returned includes both a success (true/false) attribute as well as an explanation for the evaluation(返される結果には、成功(true/false)属性と評価の説明の両方が含まれています。)
console.log(`GEN AI EXPLANATION: [${result.explanation}]`);
expect(result.success).toBe(true);
これは、mabl for Playwrightで実現できることのほんの一部です。統合、インストール手順、詳細な使用例についてさらに詳しく知りたい場合は、公式のmabl for Playwrightドキュメント(英語版)をご覧ください。
統合レポート:高い可視性とテストへの信頼性
mabl for Playwright を使用し、Playwright テストを構成して結果を mabl に直接報告するように設定することで、すべてのテスト作業を一元的に確認できるようになります。これにより、Playwright テストと mabl テストの両方からのインサイトを統合し、品質管理の全体像を包括的に把握することができます。
@mablhq/playwright-reporterパッケージを使用すると、テスト実行データを簡単にmablワークスペースに送信できます。これにより、以下のことが可能になります。
- mablのテスト実行と併せてテスト結果を分析する。
- すべてのテストプラットフォームにわたる品質を総合的に理解する。
- インサイトを共有し、メンバー同士のコラボレーションを効率化する。
Playwrightテストをmablにレポートするように設定するのはとても簡単です:
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [
[
'@mablhq/playwright-reporter',
{
apiKey: process.env.MABL_API_KEY,
workspaceId: process.env.MABL_WORKSPACE_ID,
planName: 'SAMPLE_PLAN_NAME'
},
],
],
});
Playwrightテストが実行されると、テスト完了時に出力がmablに返されます。これらの結果は、mablの他のテスト結果とともに「Results」タブで確認できます。
mabl for Playwright の詳細については、mabl Experience 2024 Japanで発表したProduct keynote のスライドをご覧ください。
米国で開催されたmabl ExperienceでのProduct keynoteセッションでmabl for Playwrightについて紹介した動画もございます。(英語版)
mabl for Playwrightを今すぐ使ってみましょう
mabl for Playwrightは、AI機能を活用してPlaywrightテストを強化し、複雑なテストシナリオを簡素化し、すべてのテスト作業における品質の統一的なビューを提供します。テスト作成の高速化、テストの安定性の向上、コラボレーションの強化を目指すチームに最適なソリューションです。
Playwrightのテストを次のレベルに進めてみませんか? mabl for Playwrightを今すぐお試しください。14日間のトライアルで、全機能を無料でお試しいただけます。