appium入门篇(2)--desired capabilities
目录
- 1、appium工作原理
- desired capabilities
- 2、准备工作
- 3、第一个appium脚本
- 获取包名和启动的activity
- 编写脚本
- 运行结果
1、appium工作原理
- 启动appium server
- appium client 发送Desired Capabilities信息给appium server,appium server返回一个session id给client
- appium client发送指令给appium server,appium server把命令发送到移动设备上去执行
- 移动端设备将执行结果返回给appium server,appium server再返回给client
desired capabilities
desired capabilities是什么,它的作用是告诉appium server被测试apk相关的信息,移动设备相关的信息。直接上官网的解释,地址:
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
Desired Capabilities are keys and values encoded in a JSON object, sent by Appium clients to the server when a new automation session is requested. They tell the Appium drivers all kinds of important things about how you want your test to work. Each Appium client builds capabilities in a way specific to the client's language, but at the end of the day, they are sent over to Appium as JSON objects.
2、准备工作
- 启动安卓模拟器,并打开开发者模式
- 启动appium server
PS C:\Users\StephenWang> appium -a 127.0.0.1 -p 4723
[Appium] Welcome to Appium v1.13.0
[Appium] Non-default server args:
[Appium] address: 127.0.0.1
[Appium] Appium REST http interface listener started on 127.0.0.1:4723
下载锤子日历apk,v1.6
下载地址:http://www.paopaoche.net/android/77944.html- 查看模拟器是否连接成功
adb devices
如果设备未连接,尝试手动连接
#夜神模拟器连接命令
adb connect 127.0.0.1:62001# 逍遥模拟器
adb connect 127.0.0.1:21503
3、第一个appium脚本
在模拟器上安装锤子日历并启动。
获取包名和启动的activity
aapt dump badging C:\appium\chuizirili_ppc.apkpackage: name='com.smartisan.calendar' versionCode='20161127' versionName='1.7.2'
uses-permission:'android.permission.GET_ACCOUNTS'
uses-permission:'android.permission.MANAGE_ACCOUNTS'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.VIBRATE'
uses-permission:'android.permission.READ_CONTACTS'
uses-permission:'android.permission.READ_CALENDAR'
uses-permission:'android.permission.WRITE_CALENDAR'
uses-permission:'android.permission.WAKE_LOCK'
uses-permission:'android.permission.RECEIVE_BOOT_COMPLETED'
uses-permission:'android.permission.USE_CREDENTIALS'
uses-permission:'android.permission.READ_SYNC_SETTINGS'
uses-permission:'com.google.android.googleapps.permission.GOOGLE_AUTH.mail'
uses-permission:'android.permission.AUTHENTICATE_ACCOUNTS'
uses-permission:'android.permission.ACCESS_COARSE_LOCATION'
uses-permission:'android.permission.ACCESS_FINE_LOCATION'
uses-permission:'android.permission.READ_SYNC_STATS'
uses-permission:'com.smartisan.permission.READ_ACCOUNT'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.READ_EXTERNAL_STORAGE'
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.READ_PROFILE'
uses-permission:'android.permission.CALL_PHONE'
uses-permission:'android.permission.READ_PHONE_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
uses-permission:'android.permission.CHANGE_WIFI_STATE'
uses-permission:'android.permission.CHANGE_CONFIGURATION'
uses-permission:'android.permission.GET_TASKS'
uses-permission:'android.permission.MOUNT_UNMOUNT_FILESYSTEMS'
uses-permission:'android.permission.WRITE_CONTACTS'
uses-permission:'android.permission.READ_CALENDAR'
uses-permission:'android.permission.WRITE_SYNC_SETTINGS'
uses-permission:'android.permission.WRITE_SETTINGS'
sdkVersion:'14'
targetSdkVersion:'19'
application: label='Smartisan Calendar' icon='res/mipmap-xhdpi-v4/ic_launcher_calendar.png'
launchable activity name='com.android.calendar.AllInOneActivity'label='' icon=''
uses-feature:'android.hardware.location'
uses-feature:'android.hardware.location.gps'
uses-feature:'android.hardware.location.network'
uses-feature:'android.hardware.wifi'
uses-feature:'android.hardware.telephony'
uses-feature:'android.hardware.touchscreen'
main
other-activities
search
other-receivers
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ca' 'da' 'fa' 'ja' 'nb' 'be' 'de' 'af' 'bg' 'th' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'nl' 'pl' 'sl' 'tl' 'am' 'in' 'ko' 'ro' 'ar' 'fr' 'hr' 'sr' 'tr' 'cs' 'es' 'ms' 'et' 'it' 'lt' 'pt' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr_CA' 'lo_LA' 'en_GB' 'et_EE' 'ka_GE' 'km_KH' 'zh_HK' 'hy_AM' 'zh_CN' 'en_IN' 'mn_MN' 'es_US' 'pt_PT' 'zh_TW' 'ms_MY'
densities: '120' '160' '240' '320' '480'
从上面可知,package: name='com.smartisan.calendar' ,aunchable activity name='com.android.calendar.AllInOneActivity'
编写脚本
from time import sleep
#从appium中导入webdriver
from appium import webdriverdesired_apability = {}
#平台名称:Android/IOS
desired_apability["platformName"] = "Android"
#系统版本
desired_apability["platformVersion"] ="4.4.2"
#设备名称
desired_apability["deviceName"] = "127.0.0.1:62001"
#是否重置会话
desired_apability["noReset"] = True
#启动的Activity
desired_apability["appActivity"] = "com.android.calendar.AllInOneActivity"
#包名
desired_apability["appPackage"] = "com.smartisan.calendar"
#apk的地址
desired_apability["app"] = r"C:\appium\chuizirili_ppc.apk"driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_apability)#睡眠5s
sleep(5)
print("Install %s and start sucess" %desired_apability["appPackage"])
driver.quit()
运行结果
运行脚本,打开模拟器观察效果,
转载于:https://www.cnblogs.com/webDepOfQWS/p/11107422.html
appium入门篇(2)--desired capabilities相关推荐
- APP自动化测试-10.Appium中Desired Capabilities常用参数
APP自动化测试-10.Appium中Desired Capabilities常用参数 文章目录 APP自动化测试-10.Appium中Desired Capabilities常用参数 前言 一.通用 ...
- appium简明教程(7)——Desired Capabilities详解
Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情 ...
- Appium基础:Desired Capabilities详讲
Desired Capabilities在启动session的时候是必须提供的,先看如下代码: Desired Capabilities本质上是key value的对象,他告诉appium serve ...
- Appium中Desired Capabilities参数设置
参考: Appium(五):Desired Capabilities Appium Desired Capabilities 1. 平台通用参数设置 Desired Capabilities简单来说就 ...
- Appium里的Desired Capabilities设置
要使用Appium控制一个APP,就要事先设置好Desired Capabilities里的内容 ,一般需要设置的有以下参数: {"platformName": "And ...
- Appium自动化测试基础 — 补充:Desired Capabilities参数介绍
下面介绍一下Desired capabilities的参数: 提示: Desired capabilities的参数非常的多,但是在我们实际的工作用,常用的也就是其中的几个,我们没有必要全部都记下来, ...
- appium入门文档
很是惭愧, appium的文档的入门可读性太差了. 全都是写给专家看的.各种概念,API, 函数解释的非常明白. 可是我就是不知道如何把它们串起来.(跟tishadow , angular有的一拼. ...
- APP自动化测试系列之Desired Capabilities详解
VOL 163 28 2020-09 今天距2021年94天 这是ITester软件测试小栈第163次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...
- [洪流学堂]Hololens开发入门篇3:使用基本功能开发一个小应用
本文首发于"洪流学堂"公众号. 洪流学堂,让你快人几步 本教程基于Unity2017.2及Visual Studio 2017 本教程编写时间:2017年12月4日 本文内容提要 ...
最新文章
- cam db num
- 有关/etc/resolv.conf、/etc/hosts、/etc/sysconfig/network
- LeetCode 110平衡二叉树-简单
- Python二级笔记(6)
- xpath中如何使用变量
- 计算机主机名在哪里看win7,大师教您win7系统查看win7系统电脑主机名的图文步骤...
- 蓝桥杯.历届试题: 核桃数量
- java.lang.UnsatisfiedLinkError: No implementation found for long com.autonavi.amap.mapcore.MapCore.n
- 应用随机过程——张波
- RPLIDAR最强参数详解
- 三大主流芯片架构特点
- 【前端GUI】—— 网站美工必须掌握的PS知识点思维导图
- 计算机怎样辅助英语听力教学,浅议多媒体计算机辅助大学英语教学的原则 大学英语听力怎么提高...
- 史上最详细How to Use Time Information Effectively Combining with Time Shift Module for Lipreading文章记录
- mysql 关联顺序_Mysql 多表关联链接顺序说明
- pc端和移动端集成第三方快捷登录 --- 微博为例
- mock与spy的区别
- 案例——封装一个轮播图插件
- Excel使用宏将表格的行增加固定的高度
- 旅行青蛙无限三叶草简单版:GG修改器