基于airtest验证Android端app是否安装及自动化安装
1.检测app是否安装;
使用check_app方法检测是否安装;为什么需要在封装一层做断言呢?主要check_app方法安装成功会返回True,但是未检测到安装时直接报异常了,停止执行。无法直接进行断言安装成功还是失败;因此封装一层做断言验证。
直接上代码:
#检测app是否安装
def existsapp(app):
dev = device()
try:
if dev.check_app(app):
return True
else:
return False
except Exception as e:
print(e)
print('检测异常安装')
return False

2.自动安装的方法:
为啥不直接使用install呢?因为我们安装时,可能并不仅仅是install,如果已安装,我们可能需要下周安装,如果未安装我们需要安装,如果检测异常,我们可能还需要覆盖安装。因此作为安装方法封装。代码如下:
#安装pak包
def installpak(path ="apk path"):
try:
if existsapp(app) == True:
print(existsapp(app),'app存在,卸载安装')#app为app包名,如:com.tencent.qqlivehuawei
uninstall(app)
install(path)
else:
print('app不存在,安装pak')
install(path)
except Exception as e:
print(e)
print('检测异常安装')
install(path)
if existsapp(app) == True:
print('安装成功')
else:
print('安装失败')

基于airtest验证Android端app是否安装及自动化安装的更多相关文章
- 【Android端 APP GPU过度绘制】GPU过度绘制及优化
一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...
- 基于Html5的移动端APP开发框架
快速增长的APP应用软件市场,以及智能手机的普及,手机应用:Native(原生)APP快速占领了APP市场,成为了APP开发的主流,但其平台的不通用性,开发成本高,多版本开发等问题,一直困扰着专业AP ...
- 【Android端 APP 内存分析】使用工具进行APP的内存分析
Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...
- 【Android端APP 安装包检查】安装包检查具体内容及实现方法
一.安装包检查的具体包含内容有哪些? 1.安装包检查的一般内容包括: 安装包基本信息检查: 文件大小: xx MB 包名: com.xx 名称: xx 本次安装包证书与外网证书对比一致性:是 版本号 ...
- 基于 fuzz 技术验证移动端 app 的健壮性
问题定义 app发布后经常容易出现各种诡异的crash, 这些crash固然可以通过各种崩溃分析服务去定位. 但是的确很影响用户体验. 在crash分类中有一类是后端接口引发的. 比如常见的引发app ...
- 【Android端 APP 启动时长获取】启动时长获取方案及具体实施
一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分 ...
- C#服务端通过Socket推送数据到Android端App中
需求: 描述:实时在客户端上获取到哪些款需要补货. 要求: 后台需要使用c#,并且哪些需要补货的逻辑写在公司框架内,客户端采用PDA(即Android客户端 版本4.4) . 用户打开了补货通知页面时 ...
- kickstart自动化安装--tftp+nfs+dhcp
使用kickstart实现Centos 自动化安装 Kickstart自动化安装简介: 规模化:同时装配多台 服务器 自动化 :安装系统,配置各种服务 远程实现:不需要光盘,U盘等安装介质 优势: ( ...
- kvm虚拟机管理 系统自动化安装
原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...
- Android Native App自动化测试实战讲解(上)(基于python)
1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...
随机推荐
- kmp失效函数(测试博客的编辑器)
1 int *find_next(char *p) 2 { 3 int k = -1; //right shift i-k 4 int i = 0; 5 int m = strlen(p); 6 in ...
- gorm去重查询 iris框架
写练习 demo 时遇到需要进行去重查询,gorm没有db.distinct()的写法 // 数据库的表字段 type Pro_location_relation struct { Id int64 ...
- 嵌入式开发er的C语言能力自测(面试)题---top 16
准备面试刷到的,链接里是原文和答案: (a-c-test-the-0x10-best-questions-for-would-be-embedded-programmers) 这里我先只给出问题,可以 ...
- Linux内核启动-从入口到start_kernel
目录 1. 内核启动要求 2. 内核启动入口 3. 概览:从入口到start_kernel 4. MMU开启之前:primary_entry 4.1. preserve_boot_args 4.2. ...
- bilibili经典面试题
1. 如何向面试官解释什么是Redis,看看普通人和高手是如何回答的?_哔哩哔哩_bilibili 2.Java面试热点问题,synchronized原理剖析与优化_哔哩哔哩_bilibili 3.黑 ...
- Python学习笔记组织文件之将一个文件夹备份到一个zip文件
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- C语言学习--文件操作--文件流指针--打开文件
当打开一个文件时, 系统会返回一个结构体, 这个结构体有对此文件操作的所有信息 调用fopen时,系统返回这个结构体的地址 FILE *p = fopen("a.txt") 打开一 ...
- fastadmin添加自定义按钮
问题:关于fastadmin框架列表页面自定义按钮功能 案例:自定义一个同步数据的按钮 <a href="javascript:;" class="btn btn- ...
- MySQL索引 及 EXPLAIN
1.索引长度计算: 1.索引字段,没有设置NOT NULL,则需要加一个字节. 2.定长字段:tinyiny占1个字节.int占4个字节.bitint占8个字节.date占3个字节.datetime占 ...
- vue-drag-resize + html2canvas合成图片并下载
https://blog.csdn.net/weixin_43923659/article/details/114701048