Python3+Appium实现多台移动设备操作的方法


Posted in Python onJuly 05, 2019

需求:

连接本机的(两台安卓手机)或者本机安装的(安卓模拟器两个),实现同时安装本地apk包 。

demon.py

特别说明:必须写udid才能实现同时对两台以上的移动设备操作。对deviceName中的值进行修改后是无法区分移动设备的,如果只修改deviceName的value就只能在同一台设备上进行安装了。

下面代码只是基础介绍,扩展到框架中需要根据自己需求做;

import os
import threading
import multiprocessing
from appium import webdriver
class ConcurrentExecution:
   """
   多进程并发安装本地apk
   """
     def __init__(self):
      self.driver_port = [[4700,"127.0.0.1:21503"],[4701,"127.0.0.1:21513"]]


  def android_driver(self,i):
     driver_list = []
     capabilities = {
        "platformName" : "Android",
        "udid"          : self.driver_port[i][1],
        "deviceName"   : self.driver_port[i][1],
        "app"          : "E:\\appiumautocode\\xxxoooox.apk",
        "noReset"       : "True"
         }
     driver = webdriver.Remote("http://127.0.0.1:{0}/wd/hub".format(self.driver_port[i][0]),capabilities)
     driver_list.append(driver)
     return driver_list


   def kill_server(self):
     """
      清理appium环境,杀node.exe的进程
      :return:
   
 """
     server_list = os.popen('tasklist | find "node.exe"').readlines()
     print(server_list)
     if len(server_list)>0:
      os.system("taskkill -F -PID node.exe")


   def start_appium_server(self,j):
     """
      启动appium服务器
      :return:
     """
     li_port = [4700,4701]
     os.system("appium -p {0}".format(li_port[j]))


if __name__ == '__main__':

   obj = ConcurrentExecution()
   obj.kill_server()
  
   for j in range(2): #启动服务
      th = threading.Thread(target=obj.start_appium_server,args=(j,))
    
th.start()

   for i in range(2): #运行
      t = multiprocessing.Process(target=obj.android_driver,args=(i,))
      t.start()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python爬取国外天气预报网站的方法
Jul 10 Python
深入理解Django的自定义过滤器
Oct 17 Python
python opencv设置摄像头分辨率以及各个参数的方法
Apr 02 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
python生成器用法实例详解
Nov 22 Python
使用python+whoosh实现全文检索
Dec 09 Python
python 安装impala包步骤
Mar 28 Python
使用python采集Excel表中某一格数据
May 14 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
深入了解python列表(LIST)
Jun 08 Python
python实现扫雷游戏的示例
Oct 20 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 #Python
python读出当前时间精度到秒的代码
Jul 05 #Python
python读写csv文件方法详细总结
Jul 05 #Python
Python考拉兹猜想输出序列代码实践
Jul 05 #Python
python读写csv文件实例代码
Jul 05 #Python
python暴力解压rar加密文件过程详解
Jul 05 #Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 #Python
You might like
做一个有下拉功能的留言版
2006/10/09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP 图片处理
2020/09/16 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
python pygame实现方向键控制小球
2019/05/17 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
浅析python中while循环和for循环
2019/11/19 Python
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
经典C++面试题一
2016/11/06 面试题
工程管理专业个人求职信范文
2013/12/07 职场文书
食品安全演讲稿
2014/09/01 职场文书
合作协议书模板
2014/10/10 职场文书
出差报告怎么写
2014/11/06 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
情况说明书怎么写
2015/10/08 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
JavaScript实现登录窗体
2021/06/22 Javascript
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
MySQL批量更新不同表中的数据
2022/05/11 MySQL