当前位置:网站首页>Appium自动化测试基础 — APPium基础操作API(一)
Appium自动化测试基础 — APPium基础操作API(一)
2022-07-05 15:04:00 【测试-八戒】
1、前置代码
一个脚本中必须要编写的内容:
# server 启动参数
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
# 声明driver对象
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
2、安装和卸载APP
(1)把电脑中的APK安装包,安装到手机上
安装方法:
driver.install_app(app_path)
参数:
app_path:脚本机器中APK⽂件路径
(2)卸载手机上已安装的APP
卸载方法:
driver.remove_app(app_id)
参数:
app_id:需要卸载的app包名
(3)演示练习
# 1.导入appium
import time
from appium import webdriver
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.microvirt.launcher2", # APP包名
"appActivity": "com.microvirt.launcher.Launcher" # APP启动名
}
# 3.启动APP
# 声明手机驱动对象(实例化webdriver)
# 第一个参数为appium服务的地址,需要启动appium服务。
# 第二个参数为Desired capabilities对象
# 我们就先传入这两个参数就可以了。
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 4.操作APP
# 脚本机器中APK⽂件路径,注意前边要加一个r,不然解析地址时可能会报错。
app_path = r'C:\Users\L\Desktop\com.taobao.taobao_V9.15.0.apk'
# 安装apk
driver.install_app(app_path)
time.sleep(5)
# 要知道即将卸载的app的包名
app_id = "com.taobao.taobao"
# 卸载app
driver.remove_app(app_id)
# 5.关闭APP
time.sleep(3)
driver.quit()
说明:
一般这两个命令很少使用,即使用命令安装apk软件,一般我们也推荐使用adb命令。就不用把安装app的代码写入脚本中,即使写入脚本,最终执行也是adb命令。如果公司的测试机充裕,我们就把app的安装包放入手机,直接手动安装了。
一般用到这两个命令是在一个脚本要去测试多个app的时候,会用到这两个命令,在测试时把这几个app先安装上,测试完成之后在卸载app。但是这种情况也基本上不多,一般情况app都单独测试。
3、判断APP是否已安装
使用的API:
driver.is_app_installed(bundle_id)
参数:
bundle_id: 传⼊app包名,返回结果为True(已安装) / False(未安装)
示例:
# 1.导入appium
import time
from appium import webdriver
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.microvirt.launcher2", # APP包名
"appActivity": "com.microvirt.launcher.Launcher" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 4.操作APP
# 脚本机器中APK⽂件路径
app_path = r'C:\Users\L\Desktop\com.taobao.taobao_V9.15.0.apk'
# 安装apk
driver.install_app(app_path)
time.sleep(5)
# 要知道即将卸载的app的包名
bundle_id = "com.taobao.taobao"
result = driver.is_app_installed(bundle_id)
# 结果是result=true
print(result)
# 5.关闭APP
time.sleep(3)
driver.quit()
提示:一般我们用眼看app是否安装就可以了,脚本中明确需要的时候再写。
4、关闭app软件和关闭驱动对象
关闭app软件和关闭驱动对象的区别:
driver.close_app()
闭当前操作的app,不会关闭驱动对象。driver.quit()
关闭驱动对象,同时关闭所有关联的app。
重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下
边栏推荐
- How can I quickly check whether there is an error after FreeSurfer runs Recon all—— Core command tail redirection
- 想问下大家伙,有无是从腾讯云MYSQL同步到其他地方的呀?腾讯云MySQL存到COS上的binlog
- 市值蒸发超百亿美元,“全球IoT云平台第一股”赴港求生
- ionic cordova项目修改插件
- Creation and optimization of MySQL index
- Machine learning notes - gray wolf optimization
- Crud of MySQL
- Object. defineProperty() - VS - new Proxy()
- 1330:【例8.3】最少步数
- P6183 [USACO10MAR] The Rock Game S
猜你喜欢
随机推荐
Fr exercise topic - simple question
Reasons and solutions for redis cache penetration and cache avalanche
CODING DevSecOps 助力金融企业跑出数字加速度
Leetcode: Shortest Word Distance II
Ten billion massage machine blue ocean, difficult to be a giant
1330: [example 8.3] minimum steps
Number protection AXB function! (essence)
Want to ask the big guy, is there any synchronization from Tencent cloud Mysql to other places? Binlog saved by Tencent cloud MySQL on cos
MySQL----函数
lvgl 显示图片示例
Creation and use of thymeleaf template
Visual task scheduling & drag and drop | scalph data integration based on Apache seatunnel
做研究无人咨询、与学生不交心,UNC助理教授两年教职挣扎史
mapper. Comments in XML files
Easyocr character recognition
Ecotone technology has passed ISO27001 and iso21434 safety management system certification
美团优选管理层变动:老将刘薇调岗,前阿里高管加盟
Does maxcompute have SQL that can query the current storage capacity (KB) of the table?
超越PaLM!北大碩士提出DiVeRSe,全面刷新NLP推理排行榜
P1451 求细胞数量/1329:【例8.2】细胞