在flask服务里面执行adb 安装命令
今天讲的是我在flask服务里执行adb install 命令,被坑了一天
需求是我们的安卓打包机器和我们的自动化机器不是同一台,管理人也不一样,想让每次打包后能通知到我们的服务器,然后执行后续的操作,比如安装卸载,monkey,冒烟测试用例等等
(懒癌犯了,不想在我们的自动化服务器安装编译环境,不然直接搭建编译环境,然后我们这里再启动一个jenkins就可以了)
1.flask写了一个get请求的接口,接收一个url参数,这里也为了方便测试,如果有url参数,就执行本次的流程,如果没有url参数,直接返回一个json串
@app.route('/get_consultant', methods=['POST', 'GET'])
def get_consultant():
if request.method == "GET":
url = request.args.get('url')
print(url)
if url:
page_url = processing_url(url)
print(page_url)
。。。
else:
return json.dumps({'error': 'url is null'})
2.然后写了个函数处理下载APP的url和存放本地的url
def processing_pagename(url):
"""根据返回的url,判断本地有没有该文件夹,没有创建"""
id = url.split('/')[-1]
page_path = "d:\\%s" % id
if not os.path.exists(page_path):
os.mkdir(page_path)
print("下载路径:%s" % page_path)
return page_path def processing_url(url):
id = url.split('/')[-1]
url = "https://***********/**/%s/app-**-**.apk" % id
print("下载地址:%s" % url)
return url 3.接下来是是安装卸载APP的函数,就出现在这个安装函数的地方,单个运行没问题,到接口里面就安装不了
def run_install_app(page_path):
"""安装APP"""
cmd = "adb install -r %s" % page_path
print("安装命令---->", str(cmd))
adb_txt = os.popen(cmd)
# adb_txt = subprocess.check_output(cmd).decode('utf-8')
time.sleep(10)
txt = adb_txt.read()
print(txt)
if "Success" in txt:
print("安装成功")
# return True
else:
print("安装失败")
# return False
def run_uninstall_app():
"""卸载APP"""
cmd = "adb uninstall **************"
# adb_txt = subprocess.check_output(cmd).decode('utf-8') # 需要decode,不然提示类型错误
adb_txt = os.popen(cmd)
txt = adb_txt.read()
print(txt)
if "Success" in txt:
print("卸载成功")
else:
print("卸载失败") 安装错误截图,我真的不知道怎么回事,函数路径和函数单个调试都没问题(有知道的私聊我),卸载和monkey函数都没问题
纠结了一天,临下班想起来:我为啥一定要在接口里面执行业务?围魏救赵吧,接口获取到apk并下载完成后,写入个文件,然后写个定时任务去读取这个文件(我真是个天才)
定时任务下一文章聊
在flask服务里面执行adb 安装命令的更多相关文章
- Android 执行 adb shell 命令
Android 执行Adb shell 命令大多需要root权限,Android自带的Runtime. getRuntime().exec()容易出错,在网上找到了一个执行adb shell命令的类 ...
- 通过ant调用shell脚本执行adb命令
在Hudson或者Jenkins中利用ant的exec 来调用shell命令,通过shell脚本来执行adb shell命令,可以正常执行,不会出现在ant中直接调用adb shell出现的假死情况. ...
- adb push命令的使用
最近刚接触一种工具(命令),什么命令呢?就是adb命令,对这个命令纯属一个小白鼠,什么都不懂,所以只能adb --help 一下参数,然后就尝试着使用. 今天遇到一个问题,需要将某个文件拷到小机上面, ...
- adb push 和 adb pull命令
adb push命令 :从电脑上传送文件到手机: adb pull命令 :从手机传送文件到电脑上 @Cocos 下次需要权限的目录可以执行chmod 777 目录名 ...
- adb devices命令链接设备失败 解决办法
使用adb devices命令链接设备失败 1,检查adb的环境配置是否存在问题 参见我的博客(sdk配置):https://www.cnblogs.com/changpuyi/p/9459025.h ...
- 命令行中使用adb安装apk
转载:http://blog.sina.com.cn/s/blog_8324d8e80101b8dn.html 在你的android—IDE中找到D:\Softwave_Ghost\技术软件\IDE\ ...
- linux -- 启动时启动服务或者执行命令
运行等级 首先,我们需要知道Linux系统关于运行等级的知识.在不同的linux系统上(例如ubuntu和Fedora)这些数字与和所代表的意义可能不同,但主要的有以下几个: 单用户模式. 多用户模式 ...
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer.Windows服务器管理工具或NET START命令启动它 1. ...
- 如何在python脚本里面连续执行adb shell后面的各种命令
如何在python脚本里面连续执行adb shell后面的各种命令 adb shell "cd /data/local && mkdir tmp" adb shel ...
随机推荐
- HTML To Word
一.源码特点 1.在一些实际的应用场景中,有用户需要将一批规范的资料网页保存为WORD文档以便离线传阅或用于其它需求.在此之前,使用了OFFICE组件来尝试完成此功能需求,但是效果都不尽如 ...
- Flask框架【七】—session组件详解
一.flask session简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件缺点: 功能单一 session是保存 ...
- 【MongoDB】 windows下建立双机主从
[双机配置] 服务端: 两台 Dell R730 双路E5 服务器 使用一个内网环境,网段20, ping 测试互通 主服ip: 192.168.20.176: 27017 从服ip: 192.168 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_02 泛型_5_定义和使用含有泛型的接口
定义泛型接口 Scanner的接口 接口的实现类.实现这个接口,规定数据类型为String类型 ArrayList是List接口的实现类 再看下List接口的源码 泛型实现类也定义为泛型 重写泛型的方 ...
- numpy多维数组
1 多维数组的切片用法 c = np.array([[[0,1,2],[4,5,6],[8,7,5],[10,11,12]],[[6,2,3],[9,8,34],[100,101,102],[110, ...
- C++ 命名管道示例
想做一个 Hook CreateFile 重定向到内存的功能,貌似可以假借命名管道实现这个功能.不熟悉命名管道,做了几个demo,如下: Server: // NamedPipeServer.cpp ...
- uni-app-在开启小程序在微信开发工具打开时,打开失败,解决方法:手动打开
这是我自学ui-app的第一张记录内容,问题都是我在实际开发中遇到的问题 1.微信开发工具打开失败,提示是: 接着我的流程就是打开上面提到的链接,进入页面:https://developers.wei ...
- mooc-IDEA 列操作--005
十一.IntelliJ IDEA -列操作 实例:根据HTTP请求JSON文件,生成一个枚举类 Step1:创建一个枚举类,把要转换的JSON串粘贴进来. 最终要实现效果 Step2:选中第一个100 ...
- vue组件通信之父子组件通信
准备工作: 首先,新建一个项目,如果这里有不会的同学,可以参考我转载过的文章 http://www.cnblogs.com/Sky-Ice/p/8875958.html vue 脚手架安装及新建项目 ...
- 东软、天健、金仕达、杭创、中联、NECHIS、军字一号 HIS产品的比较
HIS主流厂商产品介绍1.沈阳东软医疗系统有限公司创立于1998年公司是中国目前最大的软件集团——东软集团为技术和资源依托,以研制生产大型医疗设备为主,同时为医院数字化提供全面解决方案.但是,公司改制 ...