appium 通过testng 实现在不同的测试机上并行执行测试用例

在不同设备上同时运行不同的测试用例,在此使用两个安卓设备,均是安卓5.0,其中一个是模拟器,一个是真机
操作步骤如下:

1、测试类的代码如下:
public class Case {
    private AndroidDriver  driver;

//    @Parameters({"port","udid"})
    @Test(dataProvider =  "test1")
    public void setUp(String port, String udid)  throws Exception{
        System. out.printf( "端口为:" + port +  ",udid:" + udid);

        DesiredCapabilities capabilities =  new DesiredCapabilities();
        capabilities.setCapability( "deviceName", "device");
        capabilities.setCapability( "automationName", "Appium");
        capabilities.setCapability( "platformVersion""4.4");
        capabilities.setCapability( "udid"udid);
        // 设置启动包名
        capabilities.setCapability( "appPackage""com.minxindai");
        // 设置启动主Activity类名
        capabilities.setCapability( "appActivity"".app.activity.WelcomeActivity");

        // 设置代理服务器
        driver new AndroidDriver( new URL( "http://127.0.0.1:"+  port "/wd/hub"), capabilities);

        int width =  driver.manage().window().getSize(). width;
        int height =  driver.manage().window().getSize(). height;
        Thread. sleep( 10000);
        driver.quit();
       
    }


@DataProvider(name =  "test1", parallel =  true)
public Object[][] data(){
    String[] paramValue =  new String[]{ "4723""192.168.56.101:5555"};
    String[] paramValue1 =  new String[]{ "4725""7a737d2"};
    return new Object[][]{paramValue1,paramValue };

}



}


备注: 1、可以根据自己运行app来自行修改 启动包名、Activity类名

在此使用的 DataProvider 的并发,通过parallel  参数来控制其并发执行测试用例。

2、打开模拟器 、通过usb来连接真机
cmd 下输入adb devices 查看设备,如下所示:


3、同时开启两个appium 服务,通过命令行的形式进行启动

appium -a 127.0.0.1 -p4723 -U192.168.56.101:5555  (-a表示ip,-p表示端口,默认都是4723,-U表示设备的udid,可以通过adb devices查看)
appium -a 127.0.0.1 -p 4725 -U 7a737d2

4、执行测试用例即可

你可能感兴趣的:(Appium)