2017-11-26 15 views
0

3 개의 브라우저 (크롬, 파이어 폭스 및 ie)에서 병렬로 테스트를 실행하십시오. 각 브라우저는 2 개의 인스턴스를 열어야합니다. Testng.xml을 트리거 할 때 총 6 개의 브라우저 인스턴스를 열어야합니다.다음 요구 사항을 사용하여 testng.xml을 만드는 방법은 무엇입니까?

<suite thread-count=3 parallel="tests"> 
<test> 
    for firefox 
</test> 

<test> 
    for chrome 
</test> 

<test> 
    for ie 
</test> 
</suite> 

제발 도와주세요!

+0

그리고 지금까지 어떤 시도를하셨습니까? –

+0

나는 무엇을 시도해야할지 모르며 찾아 볼 때 아무 것도 찾지 못했습니다. 난 그냥 내가 게시물에 무엇을 썼는지 알아 –

답변

0

TestNG.xml 파일에 브라우저 유형을 지정하기위한 매개 변수를 추가하십시오. 테스트 클래스에서

<test> 
    <parameter name="browser" value="firefox"> 
    <parameter name="username" value="testuser"/> 
    <parameter name="password" value="testpassword"/> 
    <classes> 
     <class name="com.parameterization.TestParameters" /> 
    </classes> 
</test> 

<test> 
    <parameter name="browser" value="chrome"> 
    <parameter name="username" value="testuser"/> 
    <parameter name="password" value="testpassword"/> 
    <classes> 
     <class name="com.parameterization.TestParameters" /> 
    </classes> 
</test> 

<test> 
    <parameter name="browser" value="ie"> 
    <parameter name="username" value="testuser"/> 
    <parameter name="password" value="testpassword"/> 
    <classes> 
     <class name="com.parameterization.TestParameters" /> 
    </classes> 
</test> 
</suite> 

이러한 매개 변수를 받고 원하는 기능에 따라 webdriver을 만들 수 있습니다. 당신이 3에 스레드 수를 설정하고 귀하의 요구 사항은 각 테스트 블록에 2 개 브라우저 인스턴스를 시작하는 것입니다으로

package com.parameterization; 

import org.testng.annotations.Parameters; 
import org.testng.annotations.Test; 

public class TestParameters { 

    @Parameters({ "browser", "username", "password" }) 
    @Test 
    public void testCaseOne(String browser,String username, String password) { 
     System.out.println("browser passed as :- " + browser); 
     createWebDriver(browser); 
     loginToApplicationOne(username,password); 

    } 

    @Parameters({ "browser", "username", "password" }) 
    @Test 
    public void testCaseTwo(String browser, String username, String password) { 
    createWebDriver(browser); 
    loginToApplicationTwo(username,password);  
    } 
} 

. 각 메소드 블록이 고립 된 드라이버 인스턴스를 생성 할 수 있도록 위의 스타일로 테스트 클래스를 리팩토링해야한다. 따라서 총 6 개의 브라우저가 실행됩니다.

+0

고마워, 내 요구 사항은 동시에 두 브라우저 인스턴스에서 동일한 테스트를 실행하는 것입니다. 예를 들어, ff 브라우저의 두 인스턴스에서 동일한 테스트 케이스 (test1)가 실행 중이어야합니다. –

+0

클래스 태그 를 XML에서 2 번 복사하고 병렬 속성을 "classes "그리고 스레드 수는 6이됩니다. –

0

xml 해결 방법을 통해이를 수행 할 수있는 확실한 방법은 없습니다.

반복 할 테스트에 invocationCount to the @Test annotation을 추가 할 수 있습니다. 자세한 내용은 링크를 참조하십시오.

또한 xml 파일의 복사본을 만들고 -suitethreadpoolsize을 인수로 사용하여 병렬 스위트로 실행할 수 있습니다. 또한 두 XML 파일을 인수로 전달하십시오. doc 링크를 참조하십시오.

플러스 답변에서 제안 된대로 같은 xml에서 여러 번 테스트를 복사하십시오.