자동화테스트/Selenium2020. 2. 18. 08:00
# Gemfile
source 'https://rubygems.org'

gem 'selenium-webdriver'
gem 'rspec'

시작하기

테스트 또는 스위트를 마우스 오른쪽 단추로 클릭하고 [내보내기/Export]를 선택하고 대상 언어를 선택한 후 [내보내기/Export]를 클릭하여 테스트 또는 테스트 스위트(suite)를 WebDriver 코드로 내보낼 수 있습니다.

 

 

대상 언어에 대해 내 보낸 코드가 포함 된 파일이 브라우저의 다운로드 디렉토리에 저장됩니다.

원점 추적 코드 설명

내보낼 때 원점 추적 코드 주석을 활성화하는 옵션 토글이 있습니다.

그러면 Selenium IDE의 테스트 단계에 대한 세부 정보가 포함 된 인라인 코드 주석이 내 보낸 파일에 생성됩니다.

지원되는 내보내기

현재 다음 언어 및 테스트 프레임 워크로 내보내기가 지원됩니다.

  • C # NUnit
  • 자바 JUnit
  • 자바 스크립트 모카
  • 파이썬 pytest

각 언어에 대해 최소한 하나의 테스트 프레임 워크에서 공식적으로 지원되는 Selenium에 대한 모든 프로그래밍 언어 바인딩 (예 : Java, JavaScript, C #, Python 및 Ruby)을 지원됩니다.

 

C # NUnit

C # NUnit에 대해 내 보낸 코드는 .NET Core , NUnit 3.11 및 최신 버전의 Selenium과 작동하도록 빌드되었습니다 .

NUnit과 함께 작동 할 새로운 상용구 프로젝트를 생성하려면 [dotnet new] 명령을 사용하십시오 .

 

dotnet new nunit -n NUnit-Tests --framework netcoreapp2.0

[.csproj] 파일을 사용하면 [dotnet restore] 명령을 사용하여 올바른 패키지 및 버전을 설치할 수 있습니다.

 

<!-- filename: example.csproj -->
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="nunit" Version="3.11.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
    <PackageReference Include="Selenium.Support" Version="4.0.0-alpha03" />
    <PackageReference Include="Selenium.WebDriver" Version="4.0.0-alpha03" />
  </ItemGroup>

</Project>

C # xUnit

C # xUnit에 대해 내 보낸 코드는 C #, xUnit 및 최신 버전의 Selenium과 작동하도록 빌드되었습니다. C # Nunit과 마찬가지로 dotnet 도구를 사용하여 설치하고 이러한 종속성을 설치 한 후 (예 : [Install-Package Selenium.WebDriver] 또는 [dotnet add package Selenium.WebDriver]) 실행할 수 있습니다.

 

> dotnet new xUnitTests

.csproj파일을 사용하면 [dotnet restore] 명령을 사용하여 올바른 패키지 및 버전을 설치할 수 있습니다 .

 

<!-- filename: example.csproj -->
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
    <PackageReference Include="Selenium.Support" Version="4.0.0-alpha03" />
    <PackageReference Include="Selenium.WebDriver" Version="4.0.0-alpha03" />
  </ItemGroup>

</Project>

 

> dotnet restore example.csproj

 

자바 JUnit

Java JUnit 용으로 내 보낸 코드는 Java 8, JUnit 4.12 및 최신 버전의 Selenium과 작동하도록 빌드되었습니다.

내 보낸 Java 파일을 가져 와서 이러한 종속성을 나열한 pom.xml 파일이있는 표준 Maven 디렉토리 구조에 배치하고 실행할 수 있어야합니다.

시작하는 데 도움이되는 샘플 pom.xml이 있습니다

 

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-ide-java-code-export</artifactId>
  <version>1</version>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>4.0.0-alpha-3</version>
    </dependency>
  </dependencies>
</project>

자바 스크립트 모카

JavaScript Mocha 용으로 내 보낸 코드는 Node 10, Mocha 6.1.x 및 최신 버전의 Selenium과 작동하도록 빌드되었습니다.

내 보낸 JavaScript 파일을 가져 와서 이러한 종속성을 설치 한 후 (예 : npm install) 실행할 수 있어야합니다 .

package.json시작하는 데 도움이 되는 샘플은 다음과 같습니다 .

 

{
  "dependencies": {
    "mocha": "^6.1.4",
    "selenium-webdriver": "^4.0.0-alpha.3"
  }
}

파이썬 pytest

Python pytest 용으로 내 보낸 코드는 Python 3, pytest 4.6.x 및 최신 버전의 Selenium에서 작동하도록 빌드되었습니다.

내 보낸 JavaScript 파일을 가져 와서 이러한 종속성을 설치 한 후 (예 : pip3 install) 실행할 수 있어야합니다 .

requirements.txt시작하는 데 도움이 되는 샘플은 다음과 같습니다 .

 

pytest == 4.6.3
selenium == 4.0.0a1 

 

> pip3 install -r ./requirements.txt

루비 RSpec

Ruby Rspec 용으로 내 보낸 코드는 Ruby 2.6.x, RSpec 3.9.x 및 최신 버전의 Selenium에서 작동하도록 빌드되었습니다.

번들러와 다음 [Gemfile]을 사용하여 필요한 종속성을 설치할 수 있습니다.

 

 

# Gemfile
source 'https://rubygems.org'

gem 'selenium-webdriver'
gem 'rspec'

 

 

> gem install bunder
> bundle install

참여하는 방법

코드 내보내기는 기여를 가능하게하는 모듈 방식으로 구축되었습니다.

각 언어 및 테스트 프레임 워크에는 내보낼 코드가 포함 된 자체 패키지가 있습니다. 각 코드 스니펫은 Selenium IDE의 명령에 매핑되며 이러한 각 패키지는 모든 무거운 작업을 수행하는 기본 "코어"패키지에 의존합니다.

다음은 이미 설정된 언어 내에서 새 언어 또는 새 테스트 프레임 워크를위한 단계를 만드는 단계입니다.

1. 새로운 패키지 만들기

먼저 기존 언어 패키지 (예 : packages / code-export-java-junit)를 복사하고 이름을 바꾸십시오 (예 : [package.json] 파일의 폴더 및 세부 사항) 원하는 대상 언어 및 프레임 워크로 기여하기 위해 (예를 들어, 패키지 / 코드-내보내기-루비 -rspec 등). 그런 다음 [code-export]의 [package.json]에 대한 종속성으로 새 패키지를 추가하십시오. 마지막으로 프로젝트 루트에서 [yarn]을 실행 한 다음 [yarn watch]를 사용하여 프로젝트를 빌드하십시오 

로케이터 및 명령 업데이트

코드 내보내기의 빵과 버터는 언어 별 문자열이며 출력 코드로 바뀝니다. 이들 중 가장 눈에 띄는 것은 명령 및 로케이터 전략입니다 (예 : "by"조회 구문).

주어진 언어에는 테스트 파일과 함께 파일이 있습니다.

packages/code-export-java-junit.에서 예를 볼 수 있습니다

 

명령
명령 테스트
로케이터 전략
로케이터 전략 테스트

 

새 명령을 선언 할 때 출력을 문자열로 지정 하거나 들여 쓰기 수준을 지정하는 객체로 지정할 수 있습니다.
코드 내보내기에는 내장 된 코드의 들여 쓰기를 제어하는 ​​프리티 파이어가 내장되어 있습니다. 이 구조는 명령의 출력이 자세하고 명시적일 때 또는 명령이 명령 뒤에 오는 명령의 들여 쓰기 레벨을 변경하는 경우 유용합니다. 

 

3. 고리 만들기

후크는 내보낼 코드 구조의 대부분을 구성합니다 (예 : 스위트, 테스트 및 설정, 해제 등의 모든 항목). 또한 플러그인으로 코드를 테스트 또는 스위트의 다른 부분으로 내보낼 수 있습니다.

9 가지 후크가 있습니다 :

  • afterAll (모든 테스트가 완료된 후)
  • afterEach(각 테스트가 완료된 후-[afterAll] 이전 )
  • beforeAll (모든 테스트가 실행되기 전에)
  • beforeEach(각 테스트가 실행되기 전-[beforeAll] 이후 )
  • command (플러그인에 의해 추가 된 새로운 명령에 대한 코드를 방출)
  • dependency (추가 언어 의존성 추가)
  • inEachBegin (각 테스트에서 시작시)
  • inEachEnd (각 테스트에서, 끝에서)
  • variable (스위트 전체에서 사용할 새 변수를 선언하십시오)

 

packages/code-export-java-junit에서 구현되는 후크의 예를 볼 수 있습니다 . 

4. 언어 별 속성 업데이트

각 언어에서 몇 가지 하위 수준 세부 정보를 지정해야합니다. 들여 쓰기 할 공간 수, 메소드 선언 방법, 테스트, 스위트 등

packages/code-export-java-junit에서 구현되는 예를 볼 수 있습니다.

5. 믹스에 추가

다른 모든 것이 준비되면 UI에서 사용할 수 있도록 연결해야합니다.

packages/code-export/src/index.js.에서 가능합니다.

availableLanguages.에 언어를 추가해야합니다.

6. 테스트 및 조정

코드 내보내기를 위한 최고의 엔드 투 엔드 테스트는 일련의 테스트를 내보내고 예상대로 실행되는지 확인하는 것입니다.

개발 빌드에서 시드 테스트에 액세스 할 수 있습니다. 모든 표준 라이브러리 명령이 새 언어에서 작동하는지 확인하기에 좋은 출발점입니다.

 

최종 결과에 확신이있을 때까지 테스트, 수정 및 다시 테스트하십시오.

7. PR 제출

당신은 어려운 부분을 완료했습니다. 이제 PR 제출의 간단한 문제입니다. v3지점 에 대해 그렇게하십시오 .

 

.csproj파일을 사용하면 [dotnet restore] 명령을 사용하여 올바른 패키지 및 버전을 설치할 수 있습니다 .

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터