ホームページ > バックエンド開発 > Python チュートリアル > テスト自動化を整理する新しい方法としてのページ トランザクション

テスト自動化を整理する新しい方法としてのページ トランザクション

Patricia Arquette
リリース: 2025-01-25 10:13:09
オリジナル
992 人が閲覧しました

Page Transactions as a new way to organize your testing automation 写真提供: マテウス・カンポス・フェリペ

鮮やかな緋トキ ( Eudocimus rober ) は、アカトキとしても知られ、Threskiornithidae 鳥科の印象的なメンバーです。 この熱帯の鳥類は、南アメリカとカリブ海の一部の風景を美しく飾ります。 その形態は他のトキ種に似ていますが、その鮮やかな緋色の羽がそれを際立たせています。 国家の誇りの象徴であるこの鳥は、トリニダード トバゴの 2 つの国鳥のうちの 1 つであり、そのトゥピ・グアラニー語の名前「グアラ」は、ブラジルのいくつかの沿岸自治体の名前にも組み込まれています。

Guará: ページ トランザクション パターンの Python 実装

Guará は Python ライブラリであり、ページ トランザクションのデザイン パターンを具体化しています。 これはツールというよりも、Linux、Windows、モバイル オートメーションを含む、Selenium を超えたさまざまなオートメーション ドライバーに適用できる柔軟なプログラミング パラダイムです。

このパターンの主な目的は、テストの自動化を合理化することです。 ページ オブジェクト、アプリ アクション、およびスクリーンプレイからインスピレーションを得た Guará は、アプリケーション内のユーザー アクション (トランザクション)、つまりログイン、ログアウト、フォームの送信などのアクションを中心にしています。

このアプローチは、新しいツールや複雑な抽象化を必要とせずに、自動テスト コードの読みやすさ、保守性、適応性を強化します。 主な利点は、ドライバーに依存しない性質です。テスターは Selenium の使用に拘束されません。 Guará は、Helium、Dogtail、PRA Python、Playwright、または任意の優先ドライバーとシームレスに統合します。追加のプラグインや専門知識は必要ありません。

繰り返します: Guará はページ トランザクション デザイン パターンの Python 実装であり、スタンドアロン ツールよりもパターンを優先します。

Guará は、コマンド パターン (GoF) を利用して、ユーザー インタラクション (ボタンの押下、テキスト入力) をトランザクションにバンドルします。 フレームワークと呼ばれていますが、新しいツールではありません。

Guará は、個々の UI 要素に焦点を当てるのではなく、ユーザーのジャーニーを強調します。 複雑さはトランザクション内にカプセル化され、その結果、自然言語のように読めるテスト ステートメントが生成されます。 テスターはカスタム アサーションを作成して統合することもできます。

Guará の動作: 言語切り替えの例

この例は、ユーザーが Web ページ上で言語を切り替える例を示しています:

<code class="language-python">from selenium import webdriver
from guara.transaction import Application
from guara import it, setup
import home

def test_language_switch():
    app = Application(webdriver.Chrome())

    # Open the application
    app.at(setup.OpenApp, url="https://example.com/")

    # Change language and assert
    app.at(home.ChangeToPortuguese).asserts(it.IsEqualTo, "Conteúdo em Português")
    app.at(home.ChangeToEnglish).asserts(it.IsEqualTo, "Content in English")

    # Close the application
    app.at(setup.CloseApp)</code>
ログイン後にコピー

各トランザクションは独自のクラス (例: ChangeToPortuguese) に存在し、AbstractTransaction を拡張します。 テスターは単に do メソッドをオーバーライドするだけです。残りは Guará が担当します。

<code class="language-python">from guara.transaction import AbstractTransaction

class ChangeToPortuguese(AbstractTransaction):
    def do(self, **kwargs):
        self._driver.find_element(By.CSS_SELECTOR, ".btn-pt").click()
        return self._driver.find_element(By.CSS_SELECTOR, ".content").text</code>
ログイン後にコピー

テスト後のログにはトランザクションとアサーションが表示されます:

<code>test_demo.py::test_language_switch 
2025-01-24 21:07:10 INFO Transaction: setup.OpenApp
2025-01-24 21:07:10 INFO  url: https://example.com/
2025-01-24 21:07:14 INFO Transaction: home.ChangeToPortuguese
2025-01-24 21:07:14 INFO Assertion: IsEqualTo
2025-01-24 21:07:14 INFO  Actual Data: Conteúdo em Português
2025-01-24 21:07:14 INFO  Expected: Conteúdo em Português
2025-01-24 21:07:14 INFO Transaction: home.ChangeToEnglish
2025-01-24 21:07:14 INFO Assertion: IsEqualTo
2025-01-24 21:07:14 INFO  Actual Data: Content in English
2025-01-24 21:07:14 INFO  Expected: Content in English
2025-01-24 21:07:14 INFO Transaction: setup.CloseApp</code>
ログイン後にコピー

フィクスチャ (セットアップ/ティアダウン) は、テストの初期化と完了を管理します。 pytest や Unittesting などの標準テスト ツールは完全な互換性があります。

Guará を使用する利点

  • コードの再利用性の向上: 各クラスは完全なユーザー トランザクションを表します。
  • 可読性の向上: コードは平易な英語に似ており、コラボレーションが容易になります。
  • カスタマイズ可能なアサーション: カスタム アサーションを作成して共有します。
  • ドライバーに依存しない: Selenium を超えたさまざまな自動化ツールで動作します。
  • 多用途アプリケーション: REST API、単体テスト、デスクトップ、モバイル テストを自動化します。

Guará を始めましょう

  1. インストール: pip install guara
  2. AbstractTransactionを使用してトランザクションを作成します。
  3. トランザクションを呼び出すには、Applicationat、および asserts を使用します。
  4. Pytest を使用して詳細なログを記録してテストを実行します: python -m pytest -o log_cli=1 --log-cli-level=INFO

結論

Guará は、読みやすさ、保守性、ドライバーの独立性を優先して、テスト コードを編成するための新しいアプローチを提供します。これによりコラボレーションが促進され、カスタム アサーションの作成と共有が可能になります。 グアラをぜひ試してみてください!

以上がテスト自動化を整理する新しい方法としてのページ トランザクションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート