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 相关文章推荐
Python3.0与2.X版本的区别实例分析
Aug 25 Python
跟老齐学Python之用Python计算
Sep 12 Python
python学习之第三方包安装方法(两种方法)
Jul 30 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
Jul 27 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
python集成开发环境配置(pycharm)
Feb 14 Python
python实现五子棋程序
Apr 24 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
vuex实现简易计数器
2016/10/27 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
详解Node中导入模块require和import的区别
2017/08/11 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
JavaScript实现tab栏切换效果
2020/03/16 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
Python 内存管理机制全面分析
2021/01/16 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
旅游管理专业大学生职业规划书
2014/02/27 职场文书
《大海那边》教学反思
2014/04/09 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
单位政审意见范文
2015/06/04 职场文书
2016新年晚会开场白
2015/12/03 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python