자동화테스트/Selenium2018. 12. 19. 08:00

모든 테스트 시나리오는 특정 테스트 환경에서 실행되어야합니다. 테스트 환경은 웹 브라우저, 모바일 장치, 모바일 에뮬레이터, 모바일 시뮬레이터 등이 될 수 있습니다 .

Desired Capabilities Class는 테스트 스크립트에서 사용할 환경을 웹 드라이버에게 알려주는 데 도움이됩니다.

DesiredCapabilities 클래스의 setCapability 메서드 는 자습서의 뒷부분에서 설명하며 Selenium Grid에서 사용할 수 있습니다. 여러 컴퓨터 구성에서 병렬 실행을 수행하는 데 사용됩니다.

예 : 그리드

Selenium WebDriver의 원하는 기능

테스트 사례를 실행하는 동안 사용되는 브라우저 속성 (예 : Chrome, IE), 플랫폼 이름 (예 : Linux, Windows)을 설정하는 데 사용됩니다.

모바일 자동화의 경우 다양한 모바일 장치에 대한 테스트를 수행 할 때 모바일 플랫폼 (예 : iOS, Android) 플랫폼 버전 (예 : Android 3.x, 4.x)을 설정할 수 있습니다.

Selenium WebDriver의 원하는 기능

위의 에뮬레이터 예제는 android 플랫폼 세트와 IceCream Sandwich (4.x) 플랫폼 버전 세트를 보여줍니다.

이 튜토리얼에서는,

원하는 기능이란 무엇인가?

원하는 기능은 런타임에 브라우저의 동작을 결정하기 위해 브라우저 이름, 브라우저 버전, 시스템의 브라우저 드라이버 경로 등과 같은 브라우저 속성을 저장하는 일련의 키 / 값 쌍입니다.

  • 원하는 기능을 사용하여 Selenium WebDriver의 드라이버 인스턴스를 구성 할 수도 있습니다.
  • 원하는 기능을 사용하여 FirefoxDriver, ChromeDriver, InternetExplorerDriver와 같은 드라이버 인스턴스를 구성 할 수 있습니다.

원하는 기능은 다음과 같은 경우에 더 유용합니다.

  • 모바일 응용 프로그램 자동화에서 브라우저 속성과 장치 속성을 설정할 수 있습니다.
  • Selenium 그리드에서 다른 운영 체제와 버전을 가진 다른 브라우저에서 테스트 케이스를 실행하고자 할 때.

다양한 유형의 원하는 기능 방법

여기에서는, 목적의 capabilities 메소드의 다른 종류를 확인해,이 메소드 「setCapability Method」 를 사용하는 방법을 설명합니다 .

  1. getBrowserName ()
public java.lang.String getBrowserName ()
  1. setBrowserName ()
public void setBrowserName (java.lang.String browserName)
  1. getVersion ()
public java.lang.String getVersion ()
  1. setVersion ()
public void setVersion(java.lang.String version)
  1. getPlatform ()
public Platform getPlatform ()
  1. setPlatform ()
public PlatformgetPlatform ()
  1. getCapability 메서드

DesiredCapabilities 클래스의 getCapability 메소드는 현재 시스템에서 사용중인 기능을 가져 오는 데 사용할 수 있습니다.

public java.lang.Object getCapability (java.lang.String capabilityName)
  1. setCapabilityMethod

Desired Capabilities 클래스의 setCapability () 메소드를 사용하여 장치 이름, 플랫폼 버전, 플랫폼 이름, 테스트중인 앱의 절대 경로 (테스트중인 Android 앱의 .apk 파일), app Activity 안드로이드에서) 및 appPackage (자바).

"setCapability 방법" 에서 자바는 아래의 선언이 있습니다 :

setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability  :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability  :public void setCapability(java.lang.String capabilityName,Platform value)

setCapability  :public void setCapability(java.lang.String key,java.lang.Object value)

설정 기능 방법의 예

Selenium Webdriver를 사용하여 www.gmail.com 웹 사이트를 여는 Internet Explorer 브라우저에서 테스트 케이스 를 실행하려는 예제를 살펴 보겠습니다 .

다음은 코드입니다.

importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.ie.InternetExplorerDriver;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {
  
WebDriver IEdriver = new InternetExplorerDriver();
 driver.manage().window().maximize();
 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

이제 Eclipse에서이 코드를 실행하고 콘솔을 체크 아웃하십시오.

산출:

위의 코드를 실행하면 다음과 같은 오류가 발생합니다. 브라우저 드라이버 (위의 경우 IE) 경로가 설정되어 있지 않으므로 오류가 발생합니다. 브라우저를 셀렌 코드로 찾을 수 없습니다.

드라이버 실행 파일의 경로는 webdriver.ie.driver 시스템 속성에 의해 설정되어야합니다. formore 정보는 http://code.google.com/p/selenium/wiki/InternetExplorerDriver를 참조하십시오. 최신 버전은 http://code.google.com/p/selenium/downloads/list에서 다운로드 할 수 있습니다.

2012 년 12 월 11 일 : 59 : 43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

경고 : IE 드라이버를 시작하는이 방법은 더 이상 사용되지 않으며 셀렌 2.26에서 제거 될 것입니다. http://code.google.com/p/selenium/downloads/list에서 IEDriverServer.exe를 다운로드하고 PATH에 있는지 확인하십시오.

해결책 :

위의 문제에 대한 해결책은 오류 자체의 경고 섹션에 나와 있습니다.

  • 32 비트 또는 64 비트 용 Internet ExplorerDriver 독립 실행 형 서버를 다운로드하십시오.
  • 시스템의 적절한 위치에 드라이버를 저장하십시오.
  • System.setProperty 메서드를 사용하여 드라이버의 경로를 설정합니다 .
  • webdriver 속성으로 IE 드라이버를 설정하는 데 사용됩니다. 시스템 위치에 저장된 드라이버 실행 파일을 찾는 데 도움이됩니다. (예 : "C : \ IEDriverLocation \ IEDriver.exe")
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.ie.InternetExplorerDriver;
importorg.openqa.selenium.remote.DesiredCapabilities;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {

// IE 기능을 정의하는 데 사용됩니다. 
 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.
  INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);


System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
  
// IE 드라이버를 초기화하는 데 사용됩니다.
 WebDriver driver = new InternetExplorerDriver(capabilities);
  
 driver.manage().window().maximize();

 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

코드 설명 :

위의 코드에서,

  • import 문은 selenium 웹 드라이버의 필수 패키지, Internet Explorer 드라이버의 필수 패키지, 원하는 기능의 패키지를 가져 오는 것입니다.
  • setCapability는 다양한 기능을 입력 변수로 사용하여 웹 드라이버가 원하는 환경에서 응용 프로그램을 시작하는 데 사용합니다.
  • setProperty는 드라이버가있는 경로를 설정하는 데 사용됩니다. Web Driver는 필요한 드라이버를 찾습니다.
  • Gmail 웹 사이트는 "get"방법을 사용하여 Internet Explorer 브라우저에서 열립니다.

Output:

Internet Explorer 브라우저의 테스트 케이스는 Selenium Webdriver를 사용하여 성공적으로 실행됩니다.

결론

Desired Capabilities 클래스는 테스트를 실행할 수있는 브라우저 / 환경의 동작을 정의하는 환경을 설정하는 데 도움이됩니다.

우리가 원하는 기능을 원하는 환경에서 응용 프로그램을 시작하는 데 도움이됩니다.

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