app的apk 安装的方法--adb--命令安装 (含把apk放某个文件夹,每次启动自己安装)
adb安装
1.在app自动化之前,首先手机上有要被测试的app,如何把电脑本地上的app安装到手机上呢?可以在运行自动化代码前,在cmd输入adb指令,把电脑app安装到手机上
adb install [apk在电脑上的绝对路径]
后记:
卸载包的方法:
adb uninstall [apk 包名 ]
包名 可以用下面方法查找
adb shell
ls data/data
2.也可以用python执行adb命令安装app,代码实现如下:
# coding:utf-8
import os
# 安装app,为了方便,把app放到当前脚本同一目录
os.system("adb install baidu.apk")
appium本地安装
1.appium也可以实现自动安装app,在工程下单独建个app文件夹,待安装的app放到此文件夹下
2.在工程下再建个case文件夹,写用例时候先获取app的绝对路径
3.为了获取路径方便,可以写个函数去获取,这样方便调用
4.进一步优化代码,用lambda函数更简洁,功能等价于上一步
# coding:utf-8
import os
# 作者:上海-悠悠 QQ交流群:512200893
# 获取项目的根目录路径
p = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)),".."))
print(p)
appPath = lambda x:os.path.join(p, "app", x)
print(appPath("baidu.apk"))
5.运行代码安装指定文件夹下app
# coding:utf-8
from appium import webdriver
import os
# 作者:上海-悠悠 QQ交流群:512200893
# 获取项目的根目录路径
p = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)),".."))
# 获取app路径
appPath = lambda x:os.path.join(p, "app", x)
print(appPath("baidu.apk"))
desired_caps = {
'platformName': 'Android',
'deviceName': '127.0.0.1:62001',
'platformVersion': '4.4.2',
'app': appPath("baidu.apk"),
'appPackage': 'com.baidu.yuedu',
'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
'noReset': 'true',
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
appium在线安装
1.如果没有本地的app包,有个在线下载地址也是可以实现自动安装的。比如打完测试包后上传到一个指定的下载地址,通过这个下载地址也能实现安装
2.以百度阅读app为案例,百度搜索:百度阅读app,从下载页面获取到app的下载地址
http://p.gdown.baidu.com/b8d3f4be0e333cca250c2d3663bd2ba59f87740a58b4288dd0725134e7f455721f254aeb5c678ff9e6aa0d90b7322b1b06c5f3239bd7b726d2b0f2ac187f7c95e08cf4ef572d854a546c1814c9ad9101c58f29b5df2eeb11e751cff1d1a9d6d1e74aab7e8d53a9039a3c5cbea8e461ecb3348cd38123bebedf6a9976c2fa7f1f1df6a6543c6d73124796e97a34cca9792f10878c878d124be5e1582911aea7870e909130f73adfac
3.代码里面只需把app参数后面的本地地址改成在线地址就可以了
“app”: “app下载在线地址”
4.代码参考:
# coding:utf-8
from appium import webdriver
import os
# 作者:上海-悠悠 QQ交流群:512200893
appUrl = "http://p.gdown.baidu.com/b8d3f4be0e333cca250c2d3663bd2ba59f87740a58b4288dd0725134e7f455721f254aeb5c678ff9e6aa0d90b7322b1b06c5f3239bd7b726d2b0f2ac187f7c95e08cf4ef572d854a546c1814c9ad9101c58f29b5df2eeb11e751cff1d1a9d6d1e74aab7e8d53a9039a3c5cbea8e461ecb3348cd38123bebedf6a9976c2fa7f1f1df6a6543c6d73124796e97a34cca9792f10878c878d124be5e1582911aea7870e909130f73adfac"
desired_caps = {
'platformName': 'Android',
'deviceName': '127.0.0.1:62001',
'platformVersion': '4.4.2',
'app': appUrl,
'appPackage': 'com.baidu.yuedu',
'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
'noReset': 'true',
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
来源:http://www.cnblogs.com/yoyoketang/p/9035341.html
相关文章
- 面点:手机APP测试都要注意哪些问题?
- 手机上的APP都是用什么编程语言写的?
- Vue - 搜索关键字标红高亮(用户输入关键词搜索后,在搜索结果的列表标题上匹配并标红加粗)怎么使内容文本标红高亮的最详细教程,Nuxt.js uni-app 也适用,搜索功能及搜索结果关键字高亮源码
- uni-app - 随机数生成器,随机生成指定区间的整数或小数(支持指定小数点的位数)
- uni-app - Refused to display ‘xxx‘ in a frame because an ancestor violates the following Content Sec
- 关于IOS的证书、App ID、设备、Provisioning Profile详述
- 《精通移动App测试实战:技术、工具和案例》一1.3 Android权限系统
- 基于Java实现(APP)智能停车场管理系统【100010044】
- FileProvider使用详解(拍照、安装APP、共享文件)
- Swift - 网络请求报App Transport Security has blocked a cleartext错
- SwiftUI 新闻类API项目完整源码App
- SwiftUI iOS 精品项目之 emoji查询和搜索App(教程含源码)
- Flutter桌面开发 — Windows平台App安装失败或无法运行的问题及其解决方式
- h5唤醒App
- Linux APP源码级编译安装
- 自制手机app的51蓝牙+WiFi+循迹+避障OLED显示速度小车
- 网站安装打包 修改app.config[六]
- 针对【create-nuxt-app新版本v3.2.0】构建项目时没有server配置以及运行后弹出收集匿名数据选项等问题的解决方法
- 停车场找不到自己的车停在哪儿?教你开发一款“Find My Car”App
- Android Activity启动流程, app启动流程,APK打包流程, APK安装过程
- ipad的12系统里提示更新到ipdos13,原来安装在12上的app是不是没有了,要重新下载
- build-your-first-mobile-app(第一个 PhoneGap cordova Coldfusion App)
- 超简单一行代码实现应用双开,仿照微信双开、QQ双开等实现app应用双开,即采用Android插件化开发在免安装情况下加载使用原生app
- MAC安装app到IOS模拟器
- uni-app嵌入其他页面(阿里邮箱为例)