测试需要同时在多个android设备上运行,就需要启动多个appium

使用adb命令获取udid,命令:adb get-serialno

使用的是testng测试框架,代码使用java编写

第一台,运行真机,代码如下:

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import io.appium.java_client.android.AndroidDriver; public class StartGoogle { public AndroidDriver driver; @BeforeClass
public void startTest() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName","Android");
capabilities.setCapability("deviceName","860BDMD2229B");
capabilities.setCapability("udid", "860BDMD2229B");
//capabilities.setCapability("deviceName","860BDMD2229B");
capabilities.setCapability("platformVersion", "7.0.0");
capabilities.setCapability("browserName", "Chrome");
//capabilities.setCapability("browserName", "Browser");
driver = new AndroidDriver(new URL("http://127.0.0.1:4725/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
} @AfterClass
public void afterClass() { driver.quit();
} @Test
public void addContact() throws InterruptedException {
Thread.sleep(2000);
//打开百度首页
driver.get("https://www.baidu.com");
//输入框元素
WebElement inputBox = driver.findElement(By.id("index-kw"));
//输入JAVA关键字
inputBox.sendKeys("JAVA");
Thread.sleep(2000);
//百度一下按钮
WebElement searchButton = driver.findElement(By.id("index-bn"));
//点击百度一下按钮
searchButton.click(); Thread.sleep(5000); }
}

  

第二台运行在模拟器,代码如下:

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import io.appium.java_client.android.AndroidDriver; public class Sammydress_login { public AndroidDriver driver; @BeforeClass
public void startTest() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName","Android");
//capabilities.setCapability("deviceName","860BDMD2229B");
capabilities.setCapability("deviceName","192.168.35.102:5555");
capabilities.setCapability("udid", "192.168.35.102:5555");
capabilities.setCapability("platformVersion", "7.0.0");
//capabilities.setCapability("platformVersion", "5.1");
//capabilities.setCapability("browserName", "Chrome");
capabilities.setCapability("browserName", "Browser");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
} @AfterClass
public void afterClass() { driver.quit();
} /**
* 登录测试
* @throws InterruptedException
*/
@Test
public void SD_login() throws InterruptedException{ driver.get("http://wap-sammydress.com.trunk.s1.egomsl.com/");
driver.findElement(By.id("js_top_cate")).click();
Thread.sleep(3000);
driver.findElement(By.cssSelector("#nav > div > ul > li:nth-child(2) > p")).click();
Thread.sleep(5000);
driver.findElement(By.cssSelector("#header > div.top.on > a.icon_tag.top_user.isnoLogin")).click();
Thread.sleep(2000); driver.findElement(By.id("email")).sendKeys("18666904557@163.com");
driver.findElement(By.id("passwordsign")).sendKeys("jiang861107");
driver.findElement(By.id("js_signInBtn")).click(); Thread.sleep(2000);
} }

必须要加一条配置:capabilities.setCapability("udid", "xxxxx");

启动多个appium ,设置不同的端口号,同时运行这两个类,就可以同时测试两个实例了。。。。

appium 多个设备同时执行的更多相关文章

  1. adb或appium下多设备中指定设备的启动

    一.先用adb devices列出所有设备序列号 List of devices attached012BDC7N78954789 device132AEC8N57897458 device 二.进入 ...

  2. v4l打开video设备 ,执行VIDIOC_DQBUF,出现Resource temporarily unavailable 问题【转】

    转自:http://blog.csdn.net/china_video_expert/article/details/7236856 版权声明:本文为博主原创文章,未经博主允许不得转载. 如果你在执行 ...

  3. Perl脚本通过Expect登陆多台设备批量执行命令并Log

    本例子尝试使用Perl脚本借助Expect模块实现如下目的: 登陆多台设备 设备登陆信息按如下格式存放于文件中. $ cat hosts.txt 192.168.30.7:node1:telnet:b ...

  4. 阿里云CentOS 6.5 设备、执行Docker容器和步骤的方法

    ssh阿里云计算落地ssh username@ip uname -a 查看linux内核版本号,由于Docker推荐使用3.8内核以上,设版本号低可能会不稳定,因此须要选用yum方式升级内核. 导入 ...

  5. python实现Telnet远程登陆到设备并执行命令

    #encoding=utf-8 import telnetlib import time def do_telnet(Host, username, password, finish, command ...

  6. 通过adb命令在Android设备中执行Java命令, 并调用so文件。

    一.难点一:无法复制so文件到/system/lib或者/vendor/lib下,提示只读 解决方法: 2.使用android device monitor放库进入到 /system/lib出现只读权 ...

  7. appium+python 多设备并行执行脚本【转】

    1.ready.py文件 def getport(): aport = random.randint(4700, 4900) # 判断端口是否被占用 while getDeviceInfo.is_op ...

  8. 启动多个appium服务(同时运行多台设备)

    准备: 一台真机一台模拟器(使用的是“夜神模拟器”) 先查看是否检测到设备  adb devices    由上图可看出没有检测到模拟器(夜神模拟器已开启) 可通过以下配置完成: 第一步:找到adb的 ...

  9. appium (三)执行过程

      转自http://blog.csdn.net/Yejianyun1/article/details/56012470 appium界面运行过程: 1.启动一个http服务器:127.0.0.1:4 ...

随机推荐

  1. Computer Science: the Big Picture

    1.课程PPTMIT OpenCourseWarehttp://ocw.mit.edu/courses/; Courses  Stanfordhttp://cs.stanford.edu/course ...

  2. vuejs作用域插槽

    作用域插槽 <div id='root'> <child> <template slot-scope='props'> <h1>{{props.item ...

  3. @RequestMapping,@ResponseBody,@RequestBody用法

    本文转载:http://blog.csdn.net/ff906317011/article/details/78552426 1.@RequestMapping 国际惯例先介绍什么是@RequestM ...

  4. [Pytorch] pytorch笔记 <三>

    pytorch笔记 optimizer.zero_grad() 将梯度变为0,用于每个batch最开始,因为梯度在不同batch之间不是累加的,所以必须在每个batch开始的时候初始化累计梯度,重置为 ...

  5. 将一个命令的输出保存到CSV文件

    执行段: 结果段: 补充:配合不同的命令可以使工作更加简单 使用Imort-Csv命令从文件中导入结构化数据

  6. C#继承的多态性

    C#继承的多态性 当一个类A派生出新类B时,这个基类A在新类B中可以表现为不同的类型:用作它自己的类型.基类型,或者在实现接口时用作接口类型,我们将这种情况称为多态性. C#中的每种类型都是多态性的, ...

  7. 【Java】常用数据类型转换(BigDecimal、包装类、日期等)

    新工作转到大数据方向,每天都要面对数据类型互相转换的工作,再加上先前面试发现这部分的知识盲点, 决定复习之余自己再写一套便捷的方法,以后会比较方便.(虽然公司有现成封装的类,里头还有些遗漏的地方,暂时 ...

  8. lincode 680 Split String

    Split String    描述 笔记 数据 评测 Give a string, you can choose to split the string after one character or ...

  9. Oracle字符集的查看查询和Oracle字符集的设置修改(转载)

    本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的Oracle UTF8字符集和Oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是 ...

  10. xml中Node和Element的区别

    本文转载自:http://blog.csdn.net/wcydiyi/article/details/4432636点击打开链接 1.元素(Element)和结点(Node)的区别:         ...