Testng: рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдлрд╝реИрдХреНрдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдирд╡ре░ 2018  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cbeust/testng

рдЯреЗрд╕реНрдЯрдПрдирдЬреА рд╕рдВрд╕реНрдХрд░рдг

7.0.0-рдмреАрдЯрд╛1

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 5 рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╛рдо, рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

public class DataProviderManager {
    @DataProvider(parallel = true)
    public static Object[][] defaultWebDataProvider() {
        return new Object[][] {
                new Object[]{"chrome", "70", "Windows 10"},
                new Object[]{"internet explorer", "11", "Windows 10"},
                new Object[]{"safari", "12.0", "Mac 10.13"},
                new Object[]{"chrome", "70", "Mac 10.13"},
                new Object[]{"firefox", "63", "Mac 10.13"}
        };
    }
}

рдореЗрд░реА рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдореИрдВ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реИрдХреНрдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

public class MSGWebExampleTest extends BaseTest {
    // Declare page objects
    private MSGHome msgHome;
    // Declare test data

    @Factory(dataProvider = StaticProps.DEFAULT_WEB_DATA_PROVIDER, dataProviderClass = DataProviderManager.class)
    public MSGWebExampleTest(String browser, String browserVersion, String platform) {
        super.setRunParams(browser, browserVersion, platform);
    }

    @BeforeMethod(alwaysRun = true)
    public void setupTest() {
        msgHome = new MSGHome();
    }

    @Features({GroupProps.WEB})
    @Test(groups = {GroupProps.DEBUG})
    @Parameters({ParamProps.WEB, ParamProps.MOBILE_WEB})
    public void openSiteTest() {
        new WebInteract(null,null).pause(1000).openUrl(URLBuilder.buildUrl());
    }
}

рдкрд░реАрдХреНрд╖рдг.рдПрдХреНрд╕рдПрдордПрд▓:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Test Engineering Core Suite" parallel="methods" thread-count="2" data-provider-thread-count="4">

рдЕрдЧрд░ рдореИрдВ рдереНрд░реЗрдб-рдЧрд┐рдирддреА = 2 рдФрд░ рдбреЗрдЯрд╛-рдкреНрд░рджрд╛рддрд╛-рдереНрд░реЗрдб-рдЧрд┐рдирддреА = 4 рдФрд░ рд╕рдорд╛рдВрддрд░ = рд╕рддреНрдп рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ 8 рдмрд╛рд░ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдкрд░реАрдХреНрд╖рдг рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдореИрдВ рдХрд┐рддрдиреЗ рдереНрд░реЗрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ = рд╕рддреНрдп рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП test.xml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП, рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рд╕реЗ -Dthreadcount=2 -Ddataproviderthreacount=4 рдкрд╛рд╕ рдХрд░рдХреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдЕрдЪреВрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреИрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдХреЗ рдФрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдзрд╛рд╡рдХ рдкрд░ рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд рд╣реИ?

  • [рдПрдХреНрд╕] рд╢реИрд▓
  • [x] рдорд╛рд╡реЗрди
  • [ ] рдЧреНрд░реЗрдбрд▓
  • [ ] рдЕрдВрддрдГ
  • [ ] рдЧреНрд░рд╣рдг
  • [рдПрдХреНрд╕] рдЗрдВрдЯреЗрд▓рд┐рдЬреЗ
  • [ ] рдиреЗрдЯрдмреАрдиреНрд╕

рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдирдореВрдирд╛

рдХреГрдкрдпрд╛, рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ (рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛) рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ

рд╕рднреА 15 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@VinceBarresi - рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐

рдореИрдВрдиреЗ рдереНрд░реЗрдб рдЖрдИрдбреА рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

import org.testng.annotations.DataProvider;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;

public class MSGWebExampleTest {

  private String browser, browserVersion, platform;

  @Factory(dataProvider = "dp")
  public MSGWebExampleTest(String browser, String browserVersion, String platform) {
    this.browser = browser;
    this.browserVersion = browserVersion;
    this.platform = platform;
  }

  <strong i="8">@Test</strong>
  public void openSiteTest() {
    System.err.println("Running " + this + " on thread [" + Thread.currentThread().getId() + "]");
  }

  <strong i="9">@Override</strong>
  public String toString() {
    return String.format("[%s, %s, %s]", browser, browserVersion, platform);
  }

  @DataProvider(parallel = true, name = "dp")
  public static Object[][] defaultWebDataProvider() {
    return new Object[][]{
        new Object[]{"chrome", "70", "Windows 10"},
        new Object[]{"internet explorer", "11", "Windows 10"},
        new Object[]{"safari", "12.0", "Mac 10.13"},
        new Object[]{"chrome", "70", "Mac 10.13"},
        new Object[]{"firefox", "63", "Mac 10.13"}
    };
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test Engineering Core Suite"
  parallel="methods"
  data-provider-thread-count="4"
  thread-count="2"
  verbose="2">
  <test name="Test Engineering Core_test">
    <classes>
      <class name="com.rationaleemotions.github.issue1951.MSGWebExampleTest"/>
    </classes>
  </test>
</suite>

рдЙрддреНрдкрд╛рджрди

...
... TestNG 7.0.0-beta1 by C├йdric Beust ([email protected])
...
Running [chrome, 70, Mac 10.13] on thread [11]
Running [chrome, 70, Windows 10] on thread [12]
Running [internet explorer, 11, Windows 10] on thread [12]
Running [firefox, 63, Mac 10.13] on thread [11]
Running [safari, 12.0, Mac 10.13] on thread [12]
PASSED: openSiteTest on [chrome, 70, Mac 10.13]
PASSED: openSiteTest on [chrome, 70, Windows 10]
PASSED: openSiteTest on [internet explorer, 11, Windows 10]
PASSED: openSiteTest on [firefox, 63, Mac 10.13]
PASSED: openSiteTest on [safari, 12.0, Mac 10.13]

===============================================
    Test Engineering Core_test
    Tests run: 5, Failures: 0, Skips: 0
===============================================

===============================================
Test Engineering Core Suite
Total tests run: 5, Passes: 5, Failures: 0, Skips: 0
===============================================

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдереНрд░реЗрдб рдЖрдИрдбреА рдЕрд▓рдЧ рд╣реИрдВ (рджреЛ рдереНрд░реЗрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдереНрд░реЗрдб-рдХрд╛рдЙрдВрдЯ 2 рд╣реИ)

рдЖрдкрдХреЗ рдирдореВрдиреЗ рдореЗрдВ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдлрд╝реИрдХреНрдЯрд░реА рдкрджреНрдзрддрд┐ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рди рдХрд┐ @Test рд╡рд┐рдзрд┐ рд╕реЗред рдЗрд╕рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдирд┐рднрд╛рдиреЗ рдореЗрдВ рдЗрд╕рдХреА рдХреЛрдИ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ -

  • рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ @Test рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ @DataProvider рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИ true
  • рд╡рд┐рд╢реЗрд╖рддрд╛ parallel methods рдореЗрдВ <suite> (рдпрд╛) <test> рдЯреИрдЧ рдореЗрдВ рд╕реЗрдЯ рд╣реИ
  • data-provider-thread-count рдорд╛рди 1 . рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж TestNG рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд @Test рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ data-provider-thread-count. рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреА

рдиреЛрдЯ: рд╕реБрдЗрдЯ xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ thread-count рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдФрд░ рд╕реБрдЗрдЯ xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ data-provider-thread-count рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@krmahadevan рдЖрдкрдХреА рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореМрдХрд╛ рдорд┐рд▓рдиреЗ рдкрд░ рдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рджреМрдбрд╝рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ,

1: рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ - "рдбреАрдкреА) рдХреЛ рдЙрд╕реА рд╡рд░реНрдЧ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ @ рдЯреЗрд╕реНрдЯ рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдбреЗрдЯрд╛-рдкреНрд░рджрд╛рддрд╛-рдереНрд░реЗрдб-рдЧрд┐рдирддреА рдФрд░ рд╕рдорд╛рдВрддрд░ = рд╕рддреНрдп рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдВрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХреЗ ?

2: рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реБрдЗрдЯ рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╛рдирддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднреА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореИрдВ mvn test -Dgroups=DEBUG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдореВрд╣ DEBUG рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХрд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдереНрд░реЗрдбрдХрд╛рдЙрдВрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

1: рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ - "рдбреАрдкреА) рдХреЛ рдЙрд╕реА рд╡рд░реНрдЧ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ @Test рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдбреЗрдЯрд╛-рдкреНрд░рджрд╛рддрд╛-рдереНрд░реЗрдб-рдЧрд┐рдирддреА рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдВрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХреЗ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ = рд╕рдЪ?

рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХрд╣рд╛рдБ рд░рд╣рддрд╛ рд╣реИред

2: рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реБрдЗрдЯ рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╛рдирддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднреА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореИрдВ mvn test -Dgroups=DEBUG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдореВрд╣ DEBUG рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХрд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдереНрд░реЗрдбрдХрд╛рдЙрдВрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рд╣рд╛рдВ, рдореИрдВрдиреЗ рд╕реБрдЗрдЯ рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдПред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛
рдЬрдм рддрдХ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдереНрд░реЗрдб рдХрд╛рдЙрдВрдЯ рдХреЛ рд╕реБрдЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдпрджрд┐ рдпрд╣ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ 10 рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ), рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗред

@krmahadevan рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЬ рд╕реБрдмрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ рдФрд░ рдХреБрдЫ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдПред

  1. рдпрджрд┐ рдореИрдВ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЛ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд░рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдирд╛рдо рдХреЛ рдЯреЗрд╕реНрдЯ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:
...
... TestNG 7.0.0-beta1 by C├йdric Beust ([email protected])
...

org.testng.internal.reflect.MethodMatcherException: 
Data provider mismatch
Method: openSiteTest([])
Arguments: [(java.lang.String) chrome,(java.lang.String) 70,(java.lang.String) Windows 10]

    at org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments(DataProviderMethodMatcher.java:40)
    at org.testng.internal.Parameters.injectParameters(Parameters.java:936)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1057)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.internal.reflect.MethodMatcherException: 
Data provider mismatch
Method: openSiteTest([])
Arguments: [(java.lang.String) chrome,(java.lang.String) 70,(java.lang.String) Windows 10]

    at org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments(DataProviderMethodMatcher.java:40)
    at org.testng.internal.Parameters.injectParameters(Parameters.java:936)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1057)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.internal.reflect.MethodMatcherException: 
Data provider mismatch
Method: openSiteTest([])
Arguments: [(java.lang.String) chrome,(java.lang.String) 70,(java.lang.String) Windows 10]

    at org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments(DataProviderMethodMatcher.java:40)
    at org.testng.internal.Parameters.injectParameters(Parameters.java:936)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1057)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.internal.reflect.MethodMatcherException: 
Data provider mismatch
Method: openSiteTest([])
Arguments: [(java.lang.String) chrome,(java.lang.String) 70,(java.lang.String) Windows 10]

    at org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments(DataProviderMethodMatcher.java:40)
    at org.testng.internal.Parameters.injectParameters(Parameters.java:936)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1057)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.internal.reflect.MethodMatcherException: 
Data provider mismatch
Method: openSiteTest([])
Arguments: [(java.lang.String) chrome,(java.lang.String) 70,(java.lang.String) Windows 10]

    at org.testng.internal.reflect.DataProviderMethodMatcher.getConformingArguments(DataProviderMethodMatcher.java:40)
    at org.testng.internal.Parameters.injectParameters(Parameters.java:936)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1057)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


Test ignored.

===============================================
Test Engineering Core Suite
Total tests run: 5, Passes: 0, Failures: 5, Skips: 0
===============================================


Process finished with exit code 0

  1. рдпрджрд┐ рдореИрдВ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЛ рд╡рд╛рдкрд╕ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░рдореИрдиреЗрдЬрд░.рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рд╣реИ:
...
... TestNG 7.0.0-beta1 by C├йdric Beust ([email protected])
...
[Utils] [ERROR] [Error] org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="7">@DataProvider</strong> named : defaultWebDataProvider
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

[Utils] [ERROR] [Error] org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="8">@DataProvider</strong> named : defaultWebDataProvider
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

[Utils] [ERROR] [Error] org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="9">@DataProvider</strong> named : defaultWebDataProvider
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

[Utils] [ERROR] [Error] org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="10">@DataProvider</strong> named : defaultWebDataProvider
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

[Utils] [ERROR] [Error] org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="11">@DataProvider</strong> named : defaultWebDataProvider
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="12">@DataProvider</strong> named : defaultWebDataProvider

    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="13">@DataProvider</strong> named : defaultWebDataProvider

    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="14">@DataProvider</strong> named : defaultWebDataProvider

    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="15">@DataProvider</strong> named : defaultWebDataProvider

    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


org.testng.TestNGException: 
Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="16">@DataProvider</strong> named : defaultWebDataProvider

    at org.testng.internal.Parameters.findDataProvider(Parameters.java:614)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:808)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:775)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:60)
    at org.testng.internal.ParameterHandler.createParameters(ParameterHandler.java:39)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1024)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:140)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


Test ignored.

===============================================
Test Engineering Core Suite
Total tests run: 5, Passes: 0, Failures: 5, Skips: 0
===============================================

рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЙрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдиреЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛?

рдореИрдВ рдКрдкрд░ рдЪрд┐рдкрдХрд╛рдИ рдЧрдИ рд╕рдЯреАрдХ рдкрд░реАрдХреНрд╖рдг.рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдореЗрд░реА рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП)ред рдпрд╣рд╛рдБ рдореЗрд░рд╛ DataProviderManager.java рд╣реИ

public class DataProviderManager {
    @DataProvider(parallel = true, name = "defaultWebDataProvider")
    public static Object[][] defaultWebDataProvider() {
        return new Object[][]{
                new Object[]{"chrome", "70", "Windows 10"},
                new Object[]{"internet explorer", "11", "Windows 10"},
                new Object[]{"safari", "12.0", "Mac 10.13"},
                new Object[]{"chrome", "70", "Mac 10.13"},
                new Object[]{"firefox", "63", "Mac 10.13"}
        };
    }
}

рдпрд╣рд╛рдБ рдореЗрд░реА рдкрд░реАрдХреНрд╖рд╛ рдХрдХреНрд╖рд╛ рд╣реИ

public class MSGWebExampleTest extends BaseTest {

    // Declare page objects
    private MSGHome msgHome;

    @Factory(dataProvider = StaticProps.DEFAULT_WEB_DATA_PROVIDER, dataProviderClass = DataProviderManager.class)
    //  @Factory(dataProvider = StaticProps.DEFAULT_WEB_DATA_PROVIDER)
    public MSGWebExampleTest(String browser, String browserVersion, String platform) {
        super.setRunParams(browser, browserVersion, platform);
    }

    @BeforeMethod(alwaysRun = true)
    public void setupTest() {
        msgHome = new MSGHome();
    }

    @TestCaseId("")
    @Features({GroupProps.WEB})
    @Test(groups = {GroupProps.DEBUG}, dataProvider = StaticProps.DEFAULT_WEB_DATA_PROVIDER)
    @Parameters({ParamProps.WEB, ParamProps.MOBILE_WEB})
      public void openSiteTest() {
        Logger.logMessage(Thread.currentThread().getId());
        new WebInteract(null, null).pause(1000).openUrl(URLBuilder.buildUrl());
    }
//    @DataProvider(parallel = true, name = StaticProps.DEFAULT_WEB_DATA_PROVIDER)
//    public static Object[][] defaultWebDataProvider() {
//        return new Object[][] {
//                new Object[]{"chrome", "70", "Windows 10"},
//                new Object[]{"internet explorer", "11", "Windows 10"},
//                new Object[]{"safari", "12.0", "Mac 10.13"},
//                new Object[]{"chrome", "70", "Mac 10.13"},
//                new Object[]{"firefox", "63", "Mac 10.13"}
//        };
//    }

}

рдпрджрд┐ рдЖрдк рдкрд░рд┐рджреГрд╢реНрдп рдПрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред рдкрд░рд┐рджреГрд╢реНрдп 2 рдХреЗ рд▓рд┐рдП рдЖрдк is . рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ

@VinceBarresi - рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЗ рдХрд╛рд░рдг рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреА рдЧрд▓рддреА рд╣реИред

рджреГрд╖реНрдЯрд╛рдВрдд 1

рддреНрд░реБрдЯрд┐ org.testng.internal.reflect.MethodMatcherException: Data provider mismatch рдЖ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ public void openSiteTest() рдмрд╛рдВрдз рд░рд╣реЗ рд╣реИрдВ рдЬреЛ 3 рдкреИрд░рд╛рдореАрдЯрд░ defaultWebDataProvider() рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдзрд┐ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ рд╕рдмред рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдпрд╣ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ, рдкреНрд░рдХрд╛рд░ рдФрд░ рдХреНрд░рдо рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдареАрдХ рдХрд░реЗрдВред

рдкрд░рд┐рджреГрд╢реНрдп 2

рддреНрд░реБрдЯрд┐ Method public void com.msg.test.coretest.uitests.msgdotcom.MSGWebExampleTest.openSiteTest() requires a <strong i="15">@DataProvider</strong> named : defaultWebDataProvider рдлрд┐рд░ рд╕реЗ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ DataProviderManager рдирд╛рдордХ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреА @Test рдкрджреНрдзрддрд┐ рдореЗрдВ рдЖрдк рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдирд╛рдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрджрд┐ рдЖрдк рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рддреЛ TestNG рд╣рдореЗрд╢рд╛ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХреЗрдВред

рдЪреВрдВрдХрд┐ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

@krmahadevan рдпрд╣ рдореЗрд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреА рдЧрд▓рддрдлрд╣рдореА рд╣реИ - рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╣реА рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдореБрдЭреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ рдереНрд░реЗрдбрд▓реЛрдХрд▓ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ!

рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдорд╛рдВрддрд░рддрд╛ рдкрд░ рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкрд▓ рд╣реИ - рдореИрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдереНрд░реЗрдб рдЧрд┐рдирддреА рдФрд░/рдпрд╛ рдереНрд░реЗрдб рдЧрд┐рдирддреА рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реВрдВ рддрд╛рдХрд┐ рд╕рднреА 5 рдбреЗрдЯрд╛ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВ

@DataProvider(parallel = true, name = "dp") public static Object[][] defaultWebDataProvider() { return new Object[][]{ new Object[]{"chrome", "70", "Windows 10"}, new Object[]{"internet explorer", "11", "Windows 10"}, new Object[]{"safari", "12.0", "Mac 10.13"}, new Object[]{"chrome", "70", "Mac 10.13"}, new Object[]{"firefox", "63", "Mac 10.13"} }; }
рдкреНрд░рддреНрдпреЗрдХ @test рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдордп рдкрд░

рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдлрд╝реИрдХреНрдЯрд░реА ( @Factory рдПрдиреЛрдЯреЗрд╢рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдлрд╝реИрдХреНрдЯрд░реА рдореВрд▓ рд░реВрдк рд╕реЗ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ (рдПрдХ рд╡рд░реНрдЧ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ @Test рддрд░реАрдХреЗ рд╣реИрдВ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЬрдм рд╡реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред (рд╡рд┐рд╢реЗрд╖рддрд╛ parallel=instances )

@krmahadevan рдореИрдВ @Factory рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдмреНрд░рд╛рдЙрдЬрд╝рд░, рд╕рдВрд╕реНрдХрд░рдг, рдореЗрд░реА dataProvider рдФрд░ рдЖрд░рдВрдн рд╕реЗ рдордВрдЪ рд╕рд╣рд┐рдд WebDriver рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдереНрд░реЗрдб рдХреНрд╖рдорддрд╛рдУрдВ рдКрдкрд░ рд╕реЗрдЯ рд╣реИред рдпрджрд┐ рдореИрдВ (рд╕рдорд╛рдирд╛рдВрддрд░ = рдЙрджрд╛рд╣рд░рдг) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдбреЗрдЯрд╛рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд╕реЗ рдПрдХ рд╣реА рдмреНрд░рд╛рдЙрдЬрд╝рд░, рд╕рдВрд╕реНрдХрд░рдг, рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

screen shot 2018-11-19 at 10 20 21 am

рд╕рдлрд╛рд░реА, 12, рдореИрдХ 10.13 рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдХрдИ рдзрд╛рдЧреЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдзрд╛рдЧреЗ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ -

рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ [] {"рдХреНрд░реЛрдо", "70", "рд╡рд┐рдВрдбреЛрдЬ 10"}, рдпрд╣ 1 рдзрд╛рдЧрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ [] {"рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░", "11", "рд╡рд┐рдВрдбреЛрдЬ 10"}, рдпрд╣ рдереНрд░реЗрдб 2 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдирдИ рд╡рд╕реНрддреБ [] {"рд╕рдлрд╛рд░реА", "12.0", "рдореИрдХ 10.13"}, рдпрд╣ 3 рдзрд╛рдЧрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ [] {"рдХреНрд░реЛрдо", "70", "рдореИрдХ 10.13"}, рдпрд╣ 4 рдереНрд░реЗрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ [] {"рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕", "63", "рдореИрдХ 10.13"} рдпрд╣ рдереНрд░реЗрдб 5 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

@VinceBarresi - рдореИрдВрдиреЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рдЬреЛрдбрд╝рд╛ рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЬрдм рдЖрдк рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП @Factory рд╕рд╛рде @DataProvider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ TestNG рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ @Test рдЪрд▓рд╛рддрд╛ рд╣реИ рдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдБред

@krmahadevan StackOverflow рдкрд░ рдЖрдкрдХрд╛ рдЙрддреНрддрд░ рдмрд╣реБрдд рдЬреНрдЮрд╛рдирд╡рд░реНрдзрдХ рдерд╛, рдзрдиреНрдпрд╡рд╛рдж!

рдПрдХ рдкреНрд░рд╢реНрди: рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╣рд░ рд╡рд░реНрдЧ рдореЗрдВ рдлрд╝реИрдХреНрдЯрд░реА рдХреЛрдб рдХреА рдирдХрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж!

@borbamartin - рдЖрдк рдЕрдкрдиреЗ рд╕рднреА @Factory рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреЛ @Factory рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ dataProviderClass рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

StackOverflow рдкрд░ рдЖрдкрдХрд╛ рдЙрддреНрддрд░ рдмрд╣реБрдд рдЬреНрдЮрд╛рдирд╡рд░реНрдзрдХ рдерд╛, рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рдорджрдж рдорд┐рд▓реА ЁЯСН

@krmahadevan рд╣рд╛рдБ, рдореБрдЭреЗ

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 50 рдлреАрдЪрд░ рдХреНрд▓рд╛рд╕ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 50 рдмрд╛рд░ рд▓рд┐рдЦрдирд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛ рдореЗрдВ)

@Factory(dataProvider = "browserMatrix")
public LoginFeature(BrowserConfig browserConfig) {
    super.browserConfig = browserConfig;
}

рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреБрдЫ рдРрд╕рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рд╡рд░реНрдЧ рдореЗрдВ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

@borbamartin - рдореЗрд░реЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдЬреНрдЮрд╛рди рдХреЗ рд▓рд┐рдП,

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

blackduck-joe picture blackduck-joe  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JayVem picture JayVem  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sen1983 picture sen1983  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rkonkul picture rkonkul  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shivakrishnach31 picture shivakrishnach31  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ