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 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
Python3写入文件常用方法实例分析
May 22 Python
Python基础语法(Python基础知识点)
Feb 28 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
python列表的增删改查实例代码
Jan 30 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
python实现简单银行管理系统
Oct 25 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
Python搭建HTTP服务过程图解
Dec 14 Python
520使用Python实现“我爱你”表白
May 20 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 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
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
PHP加密解密类实例代码
2016/07/20 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
js循环改变div颜色具体方法
2013/06/25 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
js实现查询商品案例
2020/07/22 Javascript
PyTorch中Tensor的维度变换实现
2019/08/18 Python
Python实现图片识别加翻译功能
2019/12/26 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Python netmiko模块的使用
2020/02/14 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
理货员的岗位职责
2013/11/23 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
篮球社团活动总结
2014/06/27 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
2016教师节问候语
2015/11/10 职场文书
大学军训口号大全
2015/12/24 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
PHP中多字节字符串操作实例详解
2021/08/23 PHP
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
python 实现图片特效处理
2022/04/03 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python