>백엔드 개발 >파이썬 튜토리얼 >테스트 자동화를 구성하는 새로운 방법으로 페이지 거래

테스트 자동화를 구성하는 새로운 방법으로 페이지 거래

Patricia Arquette
Patricia Arquette원래의
2025-01-25 10:13:091030검색

Page Transactions as a new way to organize your testing automation 사진 제공: Mateus Campos Felipe

붉은 따오기라고도 알려진 활기 넘치는 주홍색따오기( Eudocimus ruber )는 Threskiornithidae 새과에 속하는 눈에 띄는 동물입니다. 이 열대 조류 종은 남아메리카와 카리브해 일부 지역의 풍경을 우아하게 만듭니다. 그 형태는 다른 따오기 종의 형태와 유사하지만, 화려한 진홍색 깃털이 이 따오기를 돋보이게 합니다. 국가적 자부심의 상징인 이 새는 트리니다드 토바고의 두 국조 중 하나이며 투피과라니어 이름인 "guará"는 브라질의 여러 해안 자치단체 이름에도 포함되어 있습니다.

Guará: 페이지 트랜잭션 패턴의 Python 구현

Python 라이브러리인 Guará는 페이지 트랜잭션 디자인 패턴을 구현합니다. 이는 도구라기보다는 Selenium을 넘어 Linux, Windows 및 모바일 자동화를 포괄하는 다양한 자동화 드라이버에 적용할 수 있는 유연한 프로그래밍 패러다임입니다.

이 패턴의 핵심 목표는 테스트 자동화를 간소화하는 것입니다. 페이지 개체, 앱 작업 ​​및 시나리오에서 영감을 얻은 Guará는 로그인, 로그아웃 또는 양식 제출과 같은 애플리케이션 내의 사용자 작업(트랜잭션)에 중점을 둡니다.

이 접근 방식은 새로운 도구나 복잡한 추상화 없이도 자동화 테스트 코드의 가독성, 유지 관리성 및 적응성을 향상시킵니다. 주요 장점은 운전자에 구애받지 않는 특성입니다. 테스터는 Selenium 사용에만 국한되지 않습니다. Guará는 Helium, Dogtail, PRA Python, Playwright 또는 선호하는 드라이버와 원활하게 통합됩니다. 추가 플러그인이나 전문 지식이 필요하지 않습니다.

반복하자면: Guará는 페이지 트랜잭션 디자인 패턴을 Python으로 구현한 것으로, 독립 실행형 도구보다 패턴을 우선시합니다.

Guará는 명령 패턴(GoF)을 활용하여 사용자 상호 작용(버튼 누름, 텍스트 입력)을 트랜잭션으로 묶습니다. 프레임워크라고 불리기는 하지만 새로운 도구는 아닙니다.

Guará는 개별 UI 요소에 초점을 맞추는 대신 사용자의 여정을 강조합니다. 복잡성은 트랜잭션 내에 캡슐화되어 자연어처럼 읽는 테스트 문이 생성됩니다. 테스터는 사용자 정의 어설션을 생성하고 통합할 수도 있습니다.

Guará의 활용: 언어 전환 예시

이 예는 웹페이지에서 사용자가 언어를 전환하는 모습을 보여줍니다.

<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 또는 단위 테스트와 같은 표준 테스트 도구는 완벽하게 호환됩니다.

guará

사용의 이점

개선 된 코드 재사용 성 :
    각 클래스는 완전한 사용자 트랜잭션을 나타냅니다. 향상된 가독성 : 코드는 일반 영어와 유사하여 협업을 용이하게합니다
  • 사용자 정의 가능한 어설 션 : 사용자 지정 어설 ​​션을 만들고 공유하십시오 드라이버 비율주의 : 셀레늄 이외의 다양한 자동화 도구와 함께 작동합니다 다목적 응용 프로그램 :
  • REST API, 단위 테스트, 데스크탑 및 모바일 테스트를 자동화합니다.
  • Guará 로 시작하는 것
  • 설치 :
  • 를 사용하여 거래를 호출하려면 , 를 사용하십시오 Pytest를 사용하여 자세한 로깅으로 테스트를 실행합니다
  • 결론 Guará는 테스트 코드 조직에 대한 새로운 접근 방식을 제공하여 가독성, 유지 관리 및 운전자 독립성을 우선시합니다. 그것은 협업을 장려하고 맞춤형 어설 션의 생성 및 공유를 허용합니다. Guará에게 시험해보십시오!

위 내용은 테스트 자동화를 구성하는 새로운 방법으로 페이지 거래의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.