찬성tracTor 테스트 튜토리얼: 자동화 도구 프레임워크

⚡ 스마트 요약

찬성tracTor는 AngularJS 애플리케이션을 위해 구축된 엔드투엔드 행동 기반 테스트 프레임워크로, 다음과 같은 기능을 결합합니다. Selenium 테스터가 실제 브라우저를 실행하고 표준 Angular 관련 요소를 검증할 수 있도록 Jasmine과 WebDriver를 함께 사용할 수 있습니다. Selenium 위치 추적기가 도달할 수 없습니다.

  • 🔘 현재 상태: 찬성tracTor는 2023년 8월에 지원이 종료되었으므로 새로운 제품군은 다른 곳에 있어야 합니다. CypressPlaywright 또는 WebdriverIO.
  • ☑️ 전제 조건 : Node.js를 설치하고 Selenium npm install -g pro를 실행하기 전에 WebDriver를 설치하세요.trac토르.
  • 두 개의 파일: 모든 실행에는 설정을 위한 conf.js 파일과 테스트 로직을 위한 spec.js 파일이 필요합니다.
  • 🧪 각도 로케이터: by.model과 by.binding은 ng-model 및 ng-bind 요소에 접근합니다. Selenium 혼자서는 놓치고 말았다.
  • 🛠️ 운전기사 관리자: webdriver-manager update then webdriver-manager start serves Selenium 포트 4444에서.
  • 📊 보고 : 재스민 리포터스 JUnitXmlReporter는 감사 증거를 위해 junitresults.xml 파일을 작성합니다.

찬성tracTor 테스트 튜토리얼

프로란 무엇인가trac테스트 중이신가요?

찬성trac바위 산 자동화 및 엔드투엔드 행동 중심 테스트 도구로서 중요한 역할을 합니다. 지원 AngularJS 애플리케이션을 개발하고 다음과 같은 강력한 기술을 결합하는 솔루션 통합업체로 활동합니다. SeleniumJasmine, WebDriver 등. Pro의 목적은 다음과 같습니다.tracTor Testing은 AngularJS 애플리케이션 테스트뿐만 아니라 자동화된 코드 작성에도 사용됩니다. 회귀 테스트 일반 웹 애플리케이션에도 마찬가지입니다.

⚠️ 서비스 중단 예정: 찬성trac토르는 더 이상 사용되지 않으며 보관 처리되었습니다.2023년 8월에 지원이 종료되었고 Angular CLI는 Pro 버전을 단종했습니다.tracAngular 15 이후 Tor 빌더. 선택하세요 극작가, CypressWebdriverIO 또는 TestCafe를 새로 구입하세요. 종단 간 테스트아래의 안내 사항은 기존 스위트룸에 적용됩니다.

왜 전문가가 필요할까요?tracTor 프레임워크?

Java스크립트는 거의 모든 웹 애플리케이션에서 사용됩니다. 애플리케이션이 커짐에 따라, JavaScript 또한 규모와 복잡성이 증가합니다. 이러한 경우 테스터가 다양한 시나리오에 대해 웹 애플리케이션을 테스트하는 것이 어려워집니다.

때로는 AngularJS 애플리케이션에서 웹 요소를 캡처하는 것이 어렵습니다. JUnit or Selenium 웹드라이버.

찬성tracTor는 Node.js로 작성된 프로그램입니다. Java스크립트이며 Node와 함께 실행되어 AngularJS 애플리케이션의 웹 요소를 식별하고, WebDriver를 사용하여 사용자 동작으로 브라우저를 제어합니다.

그렇다면 AngularJS 애플리케이션이란 정확히 무엇일까요?

AngularJS와 AngularJS 기반 애플리케이션은 확장된 HTML 구문을 사용하여 웹 애플리케이션 구성 요소를 표현하는 웹 애플리케이션입니다. 주로 동적 웹 애플리케이션에 사용되며, 일반 웹 애플리케이션에 비해 코드가 간결하고 유연합니다. 단, AngularJS 1.x 버전은 2021년 12월 31일부로 장기 지원(LTS)이 종료되었으므로 현재는 레거시 애플리케이션으로 간주됩니다.

일반 명령어를 사용해서는 AngularJS 웹 요소를 찾을 수 없는 이유는 무엇인가요? Selenium 웹드라이버?

AngularJS 애플리케이션에는 ng-repeater, ng-controller, ng-model 등과 같이 기본 HTML 속성에 포함되지 않은 추가 HTML 속성이 있습니다. Selenium 로케이터. Selenium 다음을 사용하여 해당 웹 요소를 식별할 수 없습니다. Selenium 코드. 그래서, 프로trac정상의 토르 Selenium 웹 애플리케이션에서 이러한 속성을 처리하고 제어할 수 있습니다.

찬성tracTor는 AngularJS 기반 애플리케이션을 위한 엔드 투 엔드 테스트 프레임워크입니다. 대부분의 프레임워크는 테스트 실행에 중점을 두는 반면, Tor는 특정 기능 구현에 중점을 둡니다. 단위 테스트 AngularJS 애플리케이션용, ProtracTor는 애플리케이션의 실제 기능 테스트에 중점을 둡니다.

시작하기 전에 프로tracTor를 사용하려면 다음 항목을 설치해야 합니다.

  1. Selenium: 당신은 찾을 수 있습니다 Selenium 설치 단계 Selenium WebDriver 설치 가이드.
  2. NPM(Node.js): Pro를 설치하려면 Node.js를 설치해야 합니다.tracTor. 설치 단계는 다음에서 확인할 수 있습니다. Node.js 다운로드 및 설치 가이드.

찬성trac토르 설치

단계 1) 명령 프롬프트를 열고 다음을 입력하세요. “npm install -g protrac토르” Enter 키를 누릅니다..

위 명령어를 실행하면 필요한 파일이 다운로드되고 Pro 버전이 설치됩니다.trac아래 그림과 같이 클라이언트 시스템에 Tor가 설치되어 있습니다.

npm install -g pro 명령 실행 후 명령 프롬프트 출력trac바위 산

단계 2) 다음을 사용하여 설치 및 버전을 확인하십시오. "찬성tractor 버전. " 성공하면 아래 스크린샷과 같은 버전이 표시됩니다. 그렇지 않은 경우 1단계를 다시 수행하십시오.

용tractor --version 설치된 Pro 버전을 출력합니다.tracTor 버전 번호

(3단계와 4단계는 선택 사항이지만 더 나은 연습을 위해 권장됩니다)

단계 3) WebDriver 관리자를 업데이트하세요. WebDriver 관리자는 특정 브라우저에서 Angular 웹 애플리케이션에 대한 테스트를 실행하는 데 사용됩니다. Pro 버전 이후에는 업데이트가 필요합니다.tracTor가 설치되어 있는 경우, WebDriver 관리자를 최신 버전으로 업데이트해야 합니다. 명령 프롬프트에서 다음 명령을 실행하여 업데이트할 수 있습니다.

webdriver-manager update

드라이버 바이너리 파일은 아래와 같이 다운로드됩니다.

웹드라이버 관리자 업데이트 중 최신 브라우저 드라이버 바이너리 다운로드

단계 4) WebDriver 관리자를 시작합니다. 이 단계를 수행하면 WebDriver 관리자가 백그라운드에서 실행되고 pro를 통해 실행되는 모든 테스트를 모니터링합니다.trac토르.

테스트가 실행되면 WebDriver가 해당 브라우저에 자동으로 로드합니다. 아래 명령어를 사용하여 관리자를 시작하세요.

webdriver-manager start

콘솔에 수신 대기 주소가 표시됩니다.

웹드라이버 관리자가 실행을 시작합니다. Selenium 백그라운드에서 실행되는 독립형 서버

자, 만약 다음 페이지로 이동하신다면 URL (http://localhost:4444/wd/hub/static/resource/hub.html브라우저에서 해당 주소를 입력하면 WebDriver 관리자가 백그라운드에서 실행되는 것을 확인할 수 있습니다.

Selenium WebDriver 허브 페이지가 localhost 포트 4444에서 제공됩니다.

Pro를 사용한 AngularJS 애플리케이션 테스트 예시trac바위 산

드라이버 관리자가 실행 중인 경우, ProtracTor를 실행하려면 두 개의 파일이 필요합니다. 투기 파일 및 구성 파일.

  1. 구성 파일이 파일은 전문가에게 도움이 됩니다.trac테스트 파일(specs.js)이 있는 위치로 Tor를 연결하고 통신합니다. Selenium 서버(Selenium 주소). Chrome은 Pro의 기본 브라우저입니다.trac토르.
  2. 사양 파일: 이 파일에는 애플리케이션과 상호 작용하는 논리와 위치 지정자가 포함되어 있습니다..

단계 1) 우리는 문을 열어야 합니다 https://angularjs.org 그리고 "여기에 이름을 입력하세요" 텍스트 상자에 "GURU99"라는 텍스트를 입력합니다.

AngularJS 홈페이지의 텍스트 상자에 GURU99라는 이름이 입력되어 있습니다.

단계 2) 이 단계에서,

  1. 이름을 입력했습니다.Guru99 "
  2. 출력 텍스트 "안녕하세요" Guru99인치가 보입니다.

AngularJS 페이지에서 "Hello GURU99" 출력 텍스트를 렌더링합니다.

단계 3) 이제 이름을 입력한 후 웹페이지에서 텍스트를 캡처하고 예상 텍스트로 확인해야 합니다..

Code:

구성 파일을 준비해야 합니다 (conf.js) 및 사양 파일 (spec.js) 상술 한 바와 같이.

spec.js의 논리:

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello GURU99!');
  });
});

Code spec.js에 대한 설명:

  1. 설명('GURU99 이름을 입력하세요', function() 설명 구문은 다음에서 가져온 것입니다. 재스민 프레임워크여기서 "describe"('GURU99 이름 입력')는 일반적으로 애플리케이션의 구성 요소(클래스, 함수 등)를 정의합니다. "GURU99 입력"이라는 코드 모음에서는 단순히 문자열일 뿐 코드가 아닙니다.
  2. it('이름을 GURU99로 추가해야 합니다', function()
  3. browser.get('https://angularjs.org')와 마찬가지로 Selenium WebDriver browser.get은 언급된 내용으로 새 브라우저 인스턴스를 엽니다. URL.
  4. 요소(by.model('이름')).센드키('GURU99') 여기서는 모델 이름을 "yourName"으로 사용하여 웹 요소를 찾고 있는데, 이는 "의 값입니다.ng 모델웹페이지에 "라고 표시되어 있습니다. 아래 스크린샷을 확인하세요."

페이지 소스에서 by.model이 사용하는 ng-model 속성 값 yourName을 보여줍니다.

  1. var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1')) 여기서는 다음을 사용하여 웹 요소를 찾습니다. xpath 그 값을 변수 "guru"에 저장합니다..
  2. 기대(guru.getText()).같음('Hello GURU99!') 마지막으로 웹페이지에서 가져온 텍스트( gettext() 사용)를 예상 텍스트와 함께 확인하고 있습니다.

conf.js의 논리:

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
};

Code conf.js에 대한 설명

  1. SeleniumAddress: 'http://localhost:4444/wd/hub' 구성 파일은 Pro에 알려줍니다.trac위치를 위해 Selenium 상담할 주소 Selenium 웹드라이버.
  2. 사양: ['spec.js']이 줄은 Pro에게 알려줍니다trac테스트 파일 spec.js의 위치를 ​​알려주세요.

실행 Code

먼저 conf.js와 spec.js 파일이 있는 폴더로 이동한 다음 아래 단계를 따르세요..

단계 1) 명령 프롬프트를 엽니 다.

단계 2) 확인 Selenium WebDriver 관리자가 실행 중입니다. 실행 중인지 확인하려면 "webdriver-manager start" 명령어를 입력하고 Enter 키를 누르십시오..

명령 프롬프트가 확인합니다. Selenium WebDriver 관리자가 실행 중입니다.

(만약 Selenium WebDriver가 실행 중이 아니므로 Pro 버전 테스트를 진행할 수 없습니다.tracTor가 웹 애플리케이션을 처리할 WebDriver를 찾을 수 없습니다.

단계 3) 새 명령 프롬프트를 열고 다음과 같이 명령을 입력합니다. "찬성tractor conf.js” 설정 파일을 실행합니다. 실행 결과는 아래와 같습니다.

찬성trac통과 사양에 대한 Tor 콘솔 출력은 pro로 시작했습니다.tractor conf.js

설명 :

  • 여기 프로tracTor는 지정된 spec 파일이 포함된 구성 파일을 실행합니다.
  • 우리는 볼 수 있습니다 Selenium 서버가 "에서 실행 중입니다.http://localhost:4444/wd/hub” 이는 우리가 conf.js 파일에 제공한 것입니다.
  • 또한 위의 스크린샷과 같이 통과한 횟수와 실패한 횟수를 확인할 수 있습니다..

합격 결과가 확인되었습니다. 다음으로 불합격 결과를 살펴보겠습니다.

단계 1) 열고 변경하면 spec.js 파일이 아래와 같이 "'Hello change GURU99'"로 변경될 것으로 예상됩니다.

spec.js 변경 후 :

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello change GURU99!');
  });
});

단계 2) spec.js 파일을 저장하고 위의 "실행" 단계를 반복하십시오. Code" 부분

이제 위 단계를 실행해 보세요.

결과 :

찬성trac실패한 사양을 문자 F로 표시한 Tor 콘솔 출력입니다.

스크린샷에서 'F'로 표시된 실패 결과를 볼 수 있으며 그 이유는 다음과 같습니다. “'안녕 GURU99!'을 기대했습니다. 'Hello Change GURU99!'와 같습니다. 또한, 코드 실행 시 발생하는 오류 수를 보여줍니다.

우리도 같은 결과를 얻을 수 있을까요? Selenium 웹드라이버?

AngularJS 요소는 XPath 또는 CSS 선택자를 사용하여 찾을 수 있는 경우가 있습니다. Selenium WebDriver. 하지만 이러한 요소들은 동적으로 생성되고 리바운드되므로 Pro는 그렇지 않습니다.tracTor는 AngularJS 스위트에 더 안전한 옵션이었습니다.

Jasmine Reporters를 사용하여 보고서 생성

찬성tracTor는 Jasmine 리포터를 지원합니다. 이 섹션은 다음을 사용합니다. JUnitXmlReporter를 사용하여 아래 단계를 따라 테스트 실행 보고서를 자동으로 XML 형식으로 생성할 수 있습니다.

Jasmine Reporter 설치

두 가지 옵션이 있습니다. 지역 옵션과 글로벌 옵션입니다.

  1. 명령 프롬프트를 열고 다음 명령을 실행하여 로컬에 설치합니다.
npm install --save-dev jasmine-reporters@^2.0.0

위 명령어는 jasmine-reporters를 실행된 디렉토리 내에 로컬로 설치합니다.

  1. 명령 프롬프트를 열고 글로벌 설치를 위해 다음 명령을 실행합니다.
npm install –g jasmine-reporters@^2.0.0

여기서는 리포터가 로컬에 설치됩니다..

단계 1) 명령을 실행하십시오.

npm install --save-dev jasmine-reporters@^2.0.0

아래와 같은 명령 프롬프트에서.

npm을 사용하여 프로젝트 폴더 내에 jasmine-reporters를 로컬에 설치합니다.

단계 2) 디렉터리의 설치 폴더를 확인하세요.. 아래 스냅샷처럼 정상적으로 설치가 되었다면 “Node_modules”를 사용할 수 있습니다.

jasmine-reporters가 설치되었음을 확인하는 Node_modules 폴더 목록입니다.

단계 3) 기존 conf.js 파일에 다음 색상 코드를 추가합니다.

exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      capabilities: {
          'browserName': 'firefox'
      },
      specs: ['spec.js'],
     framework: 'jasmine2' ,
      onPrepare: function() {
          var jasmineReporters = require('C:/Users/RE041943/Desktop/guru/node_modules/jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter(null, true, true)
          );
     }
   };

코드 설명:

코드에서는 "JUnitXmlReporter” 그리고 보고서를 저장할 경로를 제공합니다.

단계 4) 명령 프롬프트를 열고 명령을 실행하세요. 용tractor conf.js.

찬성tracTor 실행으로 생성되는 것 JUnit conf.js 업데이트 후 XML 보고서

단계 5) 위 코드를 실행하면 해당 경로에 junitresults.xml이 생성됩니다.

junitresults.xml 보고서 파일이 설정된 출력 경로에 생성되었습니다.

단계 6) XML을 열고 결과를 확인합니다. 실패 메시지는 결과 파일에 다음과 같이 표시됩니다. 테스트 케이스 테스트가 실패했습니다. "spec.js"에서 예상한 결과와 웹 페이지의 실제 결과가 일치하지 않아 테스트 케이스가 실패했습니다.

junitresults.xml 파일의 내용은 실패한 테스트 케이스에 대한 실패 메시지를 보여줍니다.

단계 7) 증거나 결과 파일의 경우 junitresult.xml 파일을 사용하세요.

찬성tracTor와 최신 테스트 자동화 대안 비교

프로 이후로tracTor는 더 이상 업데이트를 받지 않으므로, 새로운 제품군을 계획하는 팀은 Angular 프로젝트에서 현재 마이그레이션하는 프레임워크와 Tor의 장단점을 비교해야 합니다. 아래 표는 Pro 버전과 Tor 버전을 비교합니다.trac아래 FAQ에서 가장 자주 나오는 세 가지 대안을 통해 문제를 해결해 보겠습니다.

뼈대 Status 언어 지원 브라우저 엔진 각도별 로케이터
찬성trac바위 산 더 이상 사용되지 않으며, 2023년 8월에 서비스가 종료됩니다. Java스크립트, TypeScript 크롬, FirefoxIE를 통해 Selenium 웹드라이버 by.model, by.binding, by.repeater
Cypress 적극적으로 유지 관리됨 Java스크립트, TypeScript 크롬, Firefox, 가장자리 없음; CSS 또는 데이터 속성에 의존함
극작가 적극적으로 유지 관리됨 Java스크립트, TypeScript, Python, Java, .그물 크롬, Firefox웹킷 없음; CSS, 텍스트 또는 역할 선택기에 의존합니다.
웹드라이버IO 적극적으로 유지 관리됨 Java스크립트, TypeScript 크롬, Firefox, WebDriver 또는 DevTools를 통한 WebKit 없음; CSS 또는 데이터 속성에 의존함

기존 프로팀이 있는 팀tracTor 제품군은 일반적으로 가장 빠르게 움직입니다. 웹드라이버IO명령 방식과 Selenium-기반 드라이버 관리는 Pro와 유사한 기능을 유지합니다.tracTor 테스터들은 이미 알고 있습니다. 새로 시작하는 팀이나 가장 빠른 테스트 실행이 필요한 팀은 Tor를 더 자주 선택합니다. Cypress 아니면 극작가라고 해도 좋겠네요.

자주 묻는 질문

아니요. 프로tracTor는 2023년 8월에 지원이 종료되었으며 더 이상 업데이트나 보안 수정이 제공되지 않습니다. Angular는 버전 15 이후로 명령줄 빌더를 제거했으므로 남아 있는 모든 관련 도구는 레거시 코드로 간주해야 합니다.

Angular는 빌더를 추가했습니다. CypressNightwatch 및 WebdriverIO는 버전 12부터 지원됩니다. 극작가 TestCafe도 인기가 많고, Amadeus는 전문가용 자료를 발행합니다.tracTor 파일을 Playwright 파일로 변환하는 프로그램으로, 대부분의 재작성 작업을 자동화합니다.

by.model, by.binding, by.repeater, by.exactBinding 및 by.options는 AngularJS 디렉티브 데이터를 직접 읽습니다. 표준 Selenium by.css, by.id, by.xpath와 같은 로케이터는 동일한 사양에서 계속 사용할 수 있습니다.

AI 기반 자가 복구 기능은 실패한 로케이터를 활성 DOM과 비교하여 자동으로 복구하는 반면, 머신 러닝은 반복되는 오류를 그룹화하여 실제 결함을 타이밍 노이즈와 구분합니다. 자동화 테스트.

Copilot과 같은 에이전트형 도우미는 describe 블록, element() 호출 및 expect 어설션을 Playwright 로케이터로 빠르게 재작성하지만, 생성된 모든 스펙은 여전히 ​​대기 시간, 어설션 등에 대한 사람의 검토가 필요합니다. 테스트 사례 적용 범위.

이 게시물을 요약하면 다음과 같습니다.