使用Appium的WebDriver:每次为Android启动新的远程服务器?

时间:2016-03-10 20:04:55

标签: android webdriver testng appium

我正在创建使用Webdriver / Appium for Android测试网站的测试用例。我也在XML文件中使用TestNG运行这些测试。

我的每个测试用例都在一个单独的类中,我需要为每个测试/类启动一个新的远程会话,所以每个类都需要这个setup(),每次不同的类都会启动一个新的远程会话运行。

有没有办法只启动一个会话,只使用该会话进行所有测试?

 @BeforeClass
    public void setup() throws MalformedURLException {

         DesiredCapabilities cap = new DesiredCapabilities();
         cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID);
         cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Note 4");
         cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
         driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);        
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

3 个答案:

答案 0 :(得分:2)

你应该使用像post:

这样的单身设计模式

我已在以下链接中发布:

How to preserve Appium session between multiple testng class

答案 1 :(得分:1)

@BeforeSuite使用setup()。在testng.xml中,在<classes>块中指定<test> </test>。这应该是必要的。像这样:

@BeforeSuite
public void setup() throws MalformedURLException...

&安培;&安培;

<suite name="MyTestSuite" verbose="1" >
    <test name=TestName">
        <classes>
            <class name="xyz.OneTestClass" />
            <class name ="xyz.AnotherTestClass"/>
        </classes>
    </test>
</suite>

答案 2 :(得分:1)

您可以使用以下代码在一个回合中运行多个测试用例:

driver.closeApp(); driver.lauchApp();

它可能对你有帮助。