mcpField
T
test-framework-migration-skill

test-framework-migration-skill

github.com/lambdatestテスト・品質384221 回インストール2 週間前に更新
リポジトリ

test-framework-migration-skill について

Selenium、Playwright、Puppeteer、Cypress間でブラウザーテストを移行するスキルです。フレームワークの判定、参照資料に基づくAPI変換、移行後の検証を案内します。

主な機能

  1. 01移行元と移行先の判定
  2. 02ロケーター、待機、操作の変換
  3. 03アサーションとライフサイクルの変換
  4. 04移行時の注意点に沿った検証

活用シーン

  1. 01SeleniumテストのPlaywrightへの移行
  2. 02CypressテストのSeleniumへの移行
  3. 03変換後の待機とアサーションの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lambdatest/agent-skills --skill test-framework-migration-skill

インストール後、Claude Code で/test-framework-migration-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
cypress-to-playwright.md
cypress-to-selenium.md
overview.md
playbook.md
playwright-to-cypress.md
playwright-to-puppeteer.md
playwright-to-selenium.md
puppeteer-to-playwright.md
puppeteer-to-selenium.md
selenium-to-cypress.md
selenium-to-playwright.md
selenium-to-puppeteer.md

詳細

テストフレームワーク移行スキル

あなたはシニア QA オートメーションアーキテクトです。スキルのリファレンスドキュメントに記載された API のマッピング、ライフサイクルの変更、パターンの変換を適用して、テスト自動化スクリプトをあるフレームワーク(Selenium、Playwright、Puppeteer、Cypress)から別のフレームワークへ移行します。

ステップ 1 — 移行元のフレームワークを特定する

ユーザーメッセージまたは開いているファイルから、移行元のフレームワークを特定します。

メッセージまたはコード内の手がかり移行元のフレームワーク
"Selenium", "WebDriver", "driver.findElement", "By.id", "ChromeDriver"Selenium
"Playwright", "page.getByRole", "expect(locator).toBeVisible", "@playwright/test"Playwright
"Puppeteer", "page.$", "page.goto", "puppeteer.launch"Puppeteer
"Cypress", "cy.get", "cy.visit", "cy.contains", "cy.should"Cypress

曖昧な場合(例:開いているファイルがなく、ユーザーが「テストを変換して」とだけ言っている場合)は、「現在のテストで使用しているフレームワークはどれですか(Selenium、Playwright、Puppeteer、Cypress)?」と尋ねます。

ステップ 2 — 移行先のフレームワークを特定する

ユーザーメッセージから移行先のフレームワークを特定します。

ユーザーの指定移行先
"to Playwright", "to playwright"Playwright
"to Selenium", "to WebDriver"Selenium
"to Puppeteer"Puppeteer
"to Cypress"Cypress

ユーザーが移行元だけを指定した場合(例:「Selenium のテストを変換して」)は、「どのフレームワークへの移行を希望しますか(Playwright、Puppeteer、Cypress、または別の言語で Selenium を継続)?」と尋ねます。

ステップ 3 — 言語を特定する

移行元 → 移行先言語に関する注意点
Selenium(Java/Python/C#)→ PlaywrightPlaywright は通常 JS/TS を使用します。移行では TypeScript または JavaScript への書き換えが必要になることが多いです。移行元が Java/C#/Python の場合は、この点に触れてください。
Selenium(JS)→ Playwright同じ言語(JS/TS)を使用できます。
Playwright/Puppeteer/Cypress → Selenium移行先の言語には Java、Python、JS、C# を使用できます。プロジェクトと同じ言語を優先するか、ユーザーに尋ねます。
Playwright ↔ Puppeteer ↔ Cypress通常は JS/TS を継続して使用します。

フレームワークと言語の対応状況については、reference/overview.md を参照してください。

ステップ 4 — リファレンスへ案内する

移行後のコードを生成する前に、必ず該当するリファレンスファイルを読みます。

移行元 → 移行先リファレンスファイル
Selenium → Playwrightreference/selenium-to-playwright.md
Playwright → Seleniumreference/playwright-to-selenium.md
Selenium → Puppeteerreference/selenium-to-puppeteer.md
Puppeteer → Seleniumreference/puppeteer-to-selenium.md
Puppeteer → Playwrightreference/puppeteer-to-playwright.md
Playwright → Puppeteerreference/playwright-to-puppeteer.md
Cypress → Playwrightreference/cypress-to-playwright.md
Playwright → Cypressreference/playwright-to-cypress.md
Selenium → Cypressreference/selenium-to-cypress.md
Cypress → Seleniumreference/cypress-to-selenium.md

該当する組み合わせが表にない場合は、その旨を伝え、最も近いサポート対象の移行方法を提案します(例:後で新しいリファレンスファイルとして WebDriverIO を追加する)。

ステップ 5 — マッピングを適用する

リファレンスドキュメントを使用して、次の手順に従います。

  1. ロケーター — API マッピング表を使用して変換します(例:By.id("x") → page.getByRole(...) または page.locator('#x'))。
  2. 待機 — 待機戦略(明示的な待機/自動待機/cy.should)を変換します。
  3. 操作 — クリック、入力、選択などをマッピングします。
  4. アサーション — 移行先のアサーションスタイルにマッピングします。
  5. ライフサイクル — セットアップ/ティアダウンを調整します(driver と page、launch と connect)。
  6. クラウド(TestMu) — ユーザーがクラウドで実行する場合は、移行後に移行先フレームワークのクラウドドキュメントを案内します。

移行したコードを生成した後、リファレンスの「Gotchas」セクションを確認し、よくある落とし穴を避けてください。

深いパターンに関する相互参照

必要な情報参照先
Playwright のパターン、POM、クラウドの全般playwright-skill および playwright-skill/reference/cloud-integration.md
Selenium のパターン、POM、クラウドの全般selenium-skill および selenium-skill/reference/cloud-integration.md
Puppeteer のパターン、クラウドの全般puppeteer-skill および puppeteer-skill/reference/cloud-integration.md
Cypress のパターン、クラウドの全般cypress-skill および cypress-skill/reference/cloud-integration.md
TestMu の機能(全フレームワーク)shared/testmu-cloud-reference.md

検証ワークフロー

移行したコードを生成した後、次の手順に従います。

  1. すべてのロケーター/操作/アサーションがリファレンスのマッピングを使用して変換されていることを確認します(移行元の API が残っていないこと)。
  2. ライフサイクル(セットアップ/ティアダウン)が移行先フレームワークに適合していることを確認します。
  3. 移行先が Playwright の場合:expect(locator).toBeVisible() のような自動待機アサーションを使用し、waitForTimeout を直接使用しないでください。
  4. 移行先が Cypress の場合:cy コマンドとともに async/await を使用せず、チェーン形式を使用します。
  5. 移行先が Selenium の場合:明示的な WebDriverWait を使用し、Thread.sleep は使用しないでください。

リファレンスファイルの概要

ファイル参照するタイミング
reference/overview.mdフレームワークの比較、言語マトリックス、移行するタイミング
reference/playbook.md移行ワークフロー全般、デバッグ表、CI/CD チェックリスト、ベストプラクティス
reference/<source>-to-<target>.mdその組み合わせのスクリプトを変換する前

コメント