> 백엔드 개발 > PHP 튜토리얼 > phpunit과 함께 셀레늄 사용

phpunit과 함께 셀레늄 사용

Christopher Nolan
풀어 주다: 2025-02-17 08:31:09
원래의
354명이 탐색했습니다.

phpunit과 함께 셀레늄 사용 테스트는 단위 테스트, 기능 테스트, 수락 테스트 등이든 실제로 광범위한 주제입니다.이 기사에서는 Selenium을 사용하여 수락 테스트를 수행 할 수있는 방법을 확인할 것입니다. 실제 사용 사례를 설명하기 위해 실용적인 예를 사용하겠습니다. 나는 당신이 이미 phpunit을 사용하여 단위 테스트를 수행하는 방법을 알고 있거나 적어도 그것이 무엇에 관한 것인지를 이해하고 있다고 가정합니다. 시작하자.

키 테이크 아웃

셀레늄은 사용자 인터페이스 테스트를 자동화하는 도구로서 사용자와 같이 웹 응용 프로그램과 상호 작용하는 테스트를 설정할 수 있습니다. 테스트를 명령으로 변환하고 셀레늄 서버로 전달하여 작동하며, 이는 기본 API를 사용하여 웹 브라우저와 상호 작용합니다. PHP의 단위 테스트 프레임 워크 인 PHPUNIT는 수락 테스트를 위해 셀레늄과 함께 사용될 수 있습니다. 이 목적을 위해 두 가지 클래스를 제공합니다 : selenium rc (현재 더 이상 사용되지 않음) 및 selenium webdriver의 경우 phpunit_extensions_seleniumtestcase. PhPunit의 데이터 제공 업체는 특정 데이터를 반복없이 테스트에 공급할 수 있습니다. 이것은 셀레늄과 함께 사용하여 웹 응용 프로그램이 다른 입력에 어떻게 반응하는지 테스트 할 수 있습니다. 셀레늄 테스트는 각 브라우저 공급 업체가 자체 드라이버를 제공하는 드라이버 접근 방식을 사용하므로 다른 브라우저에서 셀레늄 테스트를 실행할 수 있습니다. 이를 통해 웹 애플리케이션에 대한 포괄적 인 크로스 브라우저 테스트가 가능합니다.

phpunit과 함께 셀레늄 사용 수락 테스트 란 무엇입니까? 수락 테스트는 테스트를 통해 사용자 스토리를 알려주는 과정이며,이 인용문을 좋아합니다.

시스템이 수락 기준을 충족시키는 지 여부를 결정하고 고객이 시스템을 수락할지 여부를 결정할 수 있도록 수행 된 공식 테스트.

셀레늄이란 무엇입니까?
    셀레늄은 사용자 인터페이스 테스트를 자동화하는 도구입니다. 브라우저에 대한 응용 프로그램을 테스트하는 데 도움이됩니다. 과정은 그렇게 설명 할 수 있습니다 :
  • 페이지 http://myapp.dev/videos 페이지로 이동하십시오 에이 페이지에 20 개의 비디오 목록이 포함되어 있습니다 이 페이지 매김에서 2 번을 클릭하십시오 에이 페이지에 20 개의 비디오 목록이 포함되어 있습니다
    브라우저를 종료하십시오
  • 당신은 궁금 할 것입니다 :“설명 된 테스트를 사용하여 웹 페이지를 어떻게 조작합니까?” 대답은“의존한다”입니다. Selenium RC (이전에 Selenium 1)를 사용하는 경우 원하는 동작을 수행하기 위해 자동 생성 된 JavaScript 코드를 페이지에 주입합니다. 셀레늄 RC는 더 이상 사용되지 않으며 유지 보수 모드에서만 지원됩니다. 셀레늄 웹 드라이버를 사용해야합니다 Selenium Webdriver (Selenium 2)를 사용할 때 테스트는 명령으로 변환되어 셀레늄 서버로 전달 된 다음 웹 브라우저 네이티브 API를 사용하여 브라우저로 전달됩니다.

    응용 프로그램 설정

    실제로 테스트 할 응용 프로그램이 없으므로 사용자 등록 페이지를 사용하겠습니다. 사용자는 개인 정보와 일부 청구 정보를 입력합니다. 모든 것이 좋으면 페이지가 모든 것을 출력해야합니다!. 그렇지 않으면 페이지에 유효성 검사 오류 메시지 목록이있는 구독 양식이 표시됩니다.

    우리는 셀레늄 확장과 함께 phpunit을 사용하여 응용 프로그램 테스트를 시작할 것입니다. 시작하기 전에 작곡가를 사용하여 설치하십시오

    우리는 명령이 셀레늄 서버로 전달되기 전에 브라우저로 전달한다고 말했습니다. Java 아카이브 실행 파일 인 Selenium 서버를 다운로드해야합니다. 서버는 java -jar selenium-server-standalone- .jar를 사용하여 실행할 수 있습니다. 우리는 자주 사용할 것이기 때문에, bin 디렉토리로 옮기고 .bashrc 또는 .zshrc 내부에서 그것에 대한 별칭을 만드는 것이 좋습니다.

    phpunit 및 셀레늄 PHPUNIT는 Selenium RC와 WebDriver를 모두 지원하며 그 목적을 위해 두 가지 클래스를 제공합니다. phpunit_extensions_seleniumtestcase는 rc 버전에 사용되며 phpunit_extensions_selenium2testcase는 WebDriver 버전에 사용됩니다. 따라서 시험을 시작하려면 테스트를 확장해야합니다. RC 버전이 더 이상 사용되지 않으므로 아래 예제에서 WebDriver를 사용하겠습니다. .

    설정 방법은 테스트 환경을 준비하는 데 사용됩니다. 이 경우 PhPUnit에게 Selenium 서버가 실행중인 위치, 사용할 브라우저 및 응용 프로그램의 URL을 알려줍니다. Sethost 메소드는 LocalHost로 기본값을 기본값과 Setport 메소드 기본값을 4444로 끌어 올리므로 여기에서 생략 할 수 있습니다. 그러나 테스트 서버가 다른 시스템에서 테스트를 실행하는 동안 인터넷 익스플로러를 지원하는 Windows 시스템 내부에있는 경우 사용할 수 있습니다. 테스트가 완료되면 분해 방법이 호출되며 단계를 지우는 데 사용됩니다. 우리는 그것을 사용하여 브라우저를 닫고 현재 세션을 종료합니다.

    데이터 제공 업체 PHPUNIT 데이터 제공 업체를 사용하면 반복하지 않고도 특정 데이터로 테스트를 공급할 수 있습니다. 문서에서 더 많은 것을 읽을 수 있습니다.
    <span>composer require --dev phpunit/phpunit
    </span><span>composer require --dev phpunit/phpunit-selenium</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    invalidinputsprovider는 한 필드를 제외한 유효한 입력 목록을 반환하고 유효성 검사 실패 후 예상 오류 메시지를 전달합니다.

    <span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    DOM 요소 작업 웹 페이지로 작업 할 때의 일반적인 작업 중 하나는 요소 선택입니다. PHPUNIT의 셀레늄 확장은 정말 멋진 API를 제공합니다. 클래스 이름, 태그, 이름, ID, CSS 선택기, XPath 등으로 요소를 선택할 수 있습니다.이 메소드는 다른 자식 요소, 속성 등을 선택하거나 요소를 설정하거나 얻을 수있는 phpunit_extensions_selenium2testcase_element 인스턴스를 반환합니다. 값, 업데이트 요소 CS 및 기타 여러 공통 작업. 우리 페이지에서는 다음과 같은 일을 할 수 있습니다.

    당사의 데이터 제공 업체에는 입력 이름과 해당 값이 포함되어 있습니다. 우리는 양식 입력 채우기를 처리하고 제출하는 별도의 메소드를 만들 것입니다.
    <span>composer require --dev phpunit/phpunit
    </span><span>composer require --dev phpunit/phpunit-selenium</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    유효한 양식 제출


    브라우저를 특정 페이지로 가리키려면 phpunit_extensions_selenium2testcase class의 URL 메소드를 사용합니다. URL은 SetBrowserUrl 메소드에 제공된 것과 관련이 있습니다. 따라서 브라우저를 색인 페이지로 지적한 후 양식을 작성하고 제출 한 다음 예상 성공 메시지를 테스트합니다.
    <span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    .

    셀레늄 서버가 UP가 실행 중이라고 가정하면 PHPUNIT TESTS/ACCEPTONCE/USERSUBSCRIPTIONTEST.PHP로 테스트를 실행하십시오. 이렇게하면 새로운 브라우저 세션이 생겨 양식을 채우기 시작합니다. 우리는 모든 것이 하나의 성공적인 주장으로 전달 될 것으로 기대하고 있습니다.

    <span>// tests/acceptance/UserSubscriptionTest.php
    </span>
    <span>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
    </span><span>{
    </span>    <span>public function setUp()
    </span>    <span>{
    </span>        <span>$this->setHost('localhost');
    </span>        <span>$this->setPort(4444);
    </span>        <span>$this->setBrowserUrl('http://vaprobash.dev');
    </span>        <span>$this->setBrowser('firefox');
    </span>    <span>}
    </span><span>}</span>
    로그인 후 복사

    일부 테스트가 실패하고 테스트 기간이 너무 짧아서 무엇이 잘못되었는지 관찰하기에는 너무 짧습니다. PHPUNIT는 우리가 저장할 수있는 블로브 이미지를 반환하는 FerrentsCreenshot 메서드를 사용하여 실패한 테스트의 스크린 샷을 캡처 할 수 있습니다.

    유효하지 않은 양식 제출

    잘못된 양식 제출은 이전 방법과 거의 동일합니다. 입력 양식을 작성하고 제출합니다. 그런 다음 유효성 검사 오류 메시지가 예상대로 확인됩니다. 앞에서 언급 한 invalidinputsprovider를 사용할 것입니다

    bycssselector 메소드를 사용하면 CSS Selectors를 사용하여 페이지에서 요소를 검색 할 수 있습니다. 오류 메시지가 데이터 제공 업체 메소드의 오류 메시지 필드를 사용하여 예상되는지 여부를 주장합니다. 우리의 양식은 요소 선택, 값 설정, 양식 제출 등과 같은 기본 상호 작용 만 포함합니다. 그러나 버튼 또는 링크 요소의 클릭 메소드를 사용하여 대상 페이지가 예상대로 작동하는지 확인할 수도 있습니다. >
    <span>public function tearDown()
    </span><span>{
    </span>    <span>$this->stop();
    </span><span>}</span>
    로그인 후 복사

    다른 브라우저를 사용하는 우리는 테스트에 Firefox 브라우저를 사용했습니다. 그러나 다른 브라우저도 사용할 수 있습니다. Selenium은 모든 브라우저 공급 업체가 자체 드라이버를 제공하는 데 작업하는 드라이버 접근 방식을 사용합니다. 문서에서 지원되는 드라이버 목록을 확인할 수 있습니다. 크롬 브라우저를 활성화하려면 Chromedriver를 다운로드하고 셀레늄 서버를 시작할 때 경로를 옵션으로 지정해야합니다.

    문서가 준비 되었습니까? 페이지 컨텐츠가 Ajax를 통해로드되고 페이지로드에서 테스트를 직접 트리거하지 않으려면 페이지가로드되고 요소가있을 때까지 기다릴 것입니다.
    <span>composer require --dev phpunit/phpunit
    </span><span>composer require --dev phpunit/phpunit-selenium</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    .
    <span>alias sserve="java -jar /usr/local/bin/selenium-server-standalone-<version>.jar"</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    콜백 함수는 null 값이 아닌 값을 반환 할 때까지 대기하고 오류 메시지로 2 초 후에 타임 아웃합니다. 조회 방법은 요소를 계속 찾고 있지만 검색 간격을 지정하려면 ComplicitWait 메소드를 사용할 수 있습니다.

    phpunit과 함께 셀레늄 사용 결론 이 기사는 수락 테스트를 위해 phpunit과 함께 셀레늄을 사용하는 것에 대한 간략한 소개였습니다. 일반적으로 브라우저 자동화가 필요한 모든 것에 셀레늄을 사용할 수 있습니다. 의견이나 질문이 있으시면 아래에 게시하십시오. 답변을 위해 최선을 다하겠습니다. . phpUnit 와 함께 셀레늄을 사용하는 것에 대한 자주 묻는 질문 (FAQ) PHP에 PHPUNIT 및 SELENIUM WEBDRIVER를 설치하려면 PHPUNIT 및 SELENIUM WEBDRIVER를 PHP에 설치하려면 PHP의 종속성 관리 도구 인 Composer를 사용해야합니다. 먼저, 아직하지 않은 경우 작곡가를 설치하십시오. 그런 다음 터미널에서 다음 명령을 실행하여 phpUnit을 설치하십시오 : Composer Impwart- -dev phpunit/phpunit ^9. Selenium Webdriver의 경우 Composer Imerk-Dev PHP-Webdriver/WebDriver 명령을 사용하십시오. PHP 프로젝트에 PHPUnit 및 Selenium Webdriver를 모두 설치합니다.

    셀레늄으로 PHPUnit 테스트를 어떻게 실행할 수 있습니까?

    셀레늄으로 PHPUnit 테스트를 실행하려면 테스트 케이스를 작성해야합니다. 셀레늄 웹 드라이버를 사용합니다. 테스트 사례에서는 WebDriver 명령을 사용하여 브라우저와 상호 작용할 수 있습니다. 테스트 케이스가 준비되면 PhPunit 명령 줄 도구를 사용하여 실행할 수 있습니다. 터미널의 프로젝트 디렉토리로 이동하여 PHPUNIT MYTEST.PHP 명령을 실행하십시오. 여기서 'MyTest.php'는 테스트 파일의 이름입니다. 셀레늄과 함께 phpunit에서 어설 션을 어떻게 사용합니까?

    어설 션은 특정 조건이 참인지 확인하기 위해 phpunit에 사용됩니다. 시험이 통과했는지 또는 실패했는지 여부를 결정하는 데 필수적입니다. Selenium의 PHPUnit 테스트에서는 어설 션을 사용하여 웹 요소의 상태를 확인할 수 있습니다. 예를 들어, 특정 요소가 존재하거나 보이거나 특정 텍스트가 포함되어 있다고 주장 할 수 있습니다. 이렇게하려면 Assertequals, AssertTrue 또는 AssertCantains와 같은 PhPunit이 제공 한 Assert 방법을 사용할 수 있습니다.

    PhpUnit에서 브라우저 세션을 셀레늄으로 처리하는 방법은 무엇입니까?

    브라우저 세션을 처리하는 방법은 어떻게 브라우저 세션을 처리 할 수 ​​있습니까? 셀레늄이있는 PHPUNIT는 WebDriver의 세션 방법을 사용하여 수행됩니다. WebDriver의 새 인스턴스를 만들 때 새로운 브라우저 세션이 시작됩니다. avigate (), refresh () 또는 close ()와 같은 다양한 방법을 사용 하여이 세션과 상호 작용할 수 있습니다. 세션을 끝내려면 quit () 메소드를 사용할 수 있습니다. Quit () 메소드는 모든 창을 닫고 세션을 종료 할 수 있습니다.

    셀레늄으로 phpunit에서 ajax 요청을 어떻게 처리합니까?

    ajax 요청 처리 셀레늄이있는 phpunit에서는 업데이트 된 요소와 상호 작용하기 전에 Ajax 호출이 완료 될 때까지 기다려야하기 때문에 까다로울 수 있습니다. Selenium Webdriver는이 목적을 위해 WebDriverWait 클래스를 제공합니다. 진행하기 전에 특정 조건이 참을 때까지 기다릴 수 있습니다. 예를 들어, 요소가 보이거나 클릭 할 수있을 때까지 기다릴 수 있습니다.

    다른 브라우저에서 셀레늄으로 phpunit 테스트를 어떻게 실행할 수 있습니까?

    Selenium Webdriver는 Chrome, Firefox, Chrome, Firefox를 포함한 여러 브라우저를 지원합니다. 사파리 및 인터넷 익스플로러. 다른 브라우저에서 PhPunit 테스트를 실행하려면 해당 브라우저의 웹 드라이버 인스턴스를 만들어야합니다. 예를 들어 Firefox를 사용하려면 새로운 Firefoxdriver 인스턴스를 만듭니다. 그런 다음이 드라이버를 사용하여 테스트를 실행할 수 있습니다.

    셀레늄으로 phpunit에서 프레임과 iframes를 처리하는 방법?

    프레임과 iframes는 switchto를 사용하여 셀레늄으로 phpunit에서 처리 할 수 ​​있습니다. ) WebDriver의 방법. 이 방법을 사용하면 컨텍스트를 다른 프레임 또는 iframe으로 전환 할 수 있습니다. 프레임 내부의 요소와 상호 작용 한 후에는 switchto ()-> defaultContent () 메소드를 사용하여 기본 컨텐츠로 다시 전환 할 수 있습니다.

    PhPunit 테스트에서 Selenium으로 스크린 샷을 어떻게 가져갈 수 있습니까?

    PhPunit 테스트에서 셀레늄으로 스크린 샷을 찍는 것은 WebDriver의 TakesCreenshot () 메소드를 사용하여 수행 할 수 있습니다. 이 메소드는 현재 창의 스크린 샷을 가져 와서 PNG 형식의 문자열로 리턴합니다. 그런 다음이 문자열을 파일에 저장하여 스크린 샷을 만들 수 있습니다.

    셀레늄으로 phpUnit에서 쿠키를 어떻게 처리합니까?

    쿠키는 WebDriver의 manage ()-> getCookies () 메소드를 사용하여 셀레늄으로 phpunit에서 처리 할 수 ​​있습니다. 이 방법은 모든 쿠키를 배열로 반환합니다. Manage ()-> addcookie (), manage ()-> deletecookie () 및 manage ()-> deleteallcookies () 메소드를 사용하여 쿠키를 조작 할 수 있습니다.

    phpunit 테스트를 어떻게 실행할 수 있습니까? 셀레늄이 병렬로 셀레늄으로 phpunit 테스트를 실행하면 테스트 스위트가 크게 속도를 높일 수 있습니다. 이것은 셀레늄 그리드를 사용하여 달성 할 수 있으며,이를 통해 여러 기계와 브라우저에서 동시에 테스트를 실행할 수 있습니다. 셀레늄 그리드를 사용하려면 허브와 노드를 설정 한 다음 WebDriver를 허브에 연결하도록 구성해야합니다.

위 내용은 phpunit과 함께 셀레늄 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿