このサイトはCookieを使用しています。サイトの使用を続けることで、Cookieの使用に同意することになります。

Logo
    生成AI活用ガイド
    生成AI活用ガイド

    E2E自動テストコードを生成する(Python+Playwright)

    最終更新日時
    Feb 21, 2024 3:51 AM
    ツール
    ChatGPT
    利用シーン
    実装/テストコードを書く

    特定のサイトのURLからE2Eテストを生成する

    質問例

    次のサイトに対して、自動E2Eテストを作成したいです。
    Python, Playwright, pytestのテストコードを書いてください。
    https://hotel.testplanisphere.dev/ja/

    回答内容

    Playwrightとpytestを使用して、指定されたサイト(https://hotel.testplanisphere.dev/ja/)に対する簡単なエンドツーエンド(E2E)テストの例を書きます。このテストスクリプトでは、以下のステップを実行します:
    1. Playwrightを使用してブラウザを起動します。
    2. 指定されたURLにアクセスします。
    3. ホームページが正常に表示されることを確認します。
    4. ログインページに移動して、デモアカウントでログインを試みます。
    5. ログインが成功したかを確認します。

    まず、Playwrightとpytestを使用するために必要なパッケージをインストールする必要があります。これらは、以下のコマンドを使用してインストールできます:

    pip install playwright pytest pytest-playwright

    次に、Playwrightを設定して、必要なブラウザのバイナリをインストールします:

    playwright install

    以下は、指定されたテストシナリオに対するテストスクリプトの例です:

    このテストスクリプトは基本的な流れをカバーしていますが、実際のプロジェクトではさらに多くのエッジケースや機能に対するテストが必要になります。また、セキュリティ、パフォーマンス、レスポンシブデザインのテストなど、他の側面を考慮することも重要です。

    テストを実行するには、上記のスクリプトを .py ファイルに保存し、pytestを使用して実行します:

    pytest <ファイル名>.py

    テスト実行時には、Playwrightが自動的にブラウザを開き、指定されたステップを実行して結果を報告します。

    参照記事

    ChatGPT(GPT-4)にE2E自動テストを書かせてみた - Qiita

    2023/3/15は完全にGPT-4の話題でもちきりでした。私も触ってみたところ「これはすごい」と思ったので即課金して色々試していまして、本業の一部であるE2Eの自動テストを書かせたらどうなるん…

    qiita.com

    ChatGPT(GPT-4)にE2E自動テストを書かせてみた - Qiita

    TIS株式会社

    サイトのご利用について

    情報セキュリティ方針

    お問い合わせ・フィードバック

    Copyright 2024 TIS Inc.

    import pytest
    from playwright.sync_api import sync_playwright
    
    @pytest.fixture(scope="function")
    def browser():
        with sync_playwright() as p:
            browser = p.chromium.launch(headless=False)  # ヘッドレスモードを無効にしてブラウザUIを表示
            yield browser
            browser.close()
    
    def test_login(browser):
        page = browser.new_page()
        page.goto("<https://hotel.testplanisphere.dev/ja/>")
    
        # ホームページの確認
        assert "宿泊予約" in page.title()
    
        # ログインページへの移動
        page.click("text=ログイン")
        page.wait_for_url("**/login")
    
        # デモアカウントでのログイン
        page.fill("input[name='email']", "demo@example.com")
        page.fill("input[name='password']", "password")
        page.click("text=ログイン")
    
        # ログイン成功の確認
        assert page.url == "<https://hotel.testplanisphere.dev/ja/mypage>"
    
        page.close()