目录

  • 1、appium工作原理

    • desired capabilities
  • 2、准备工作
  • 3、第一个appium脚本
    • 获取包名和启动的activity
    • 编写脚本
    • 运行结果

1、appium工作原理

  1. 启动appium server
  2. appium client 发送Desired Capabilities信息给appium server,appium server返回一个session id给client
  3. appium client发送指令给appium server,appium server把命令发送到移动设备上去执行
  4. 移动端设备将执行结果返回给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相关推荐

  1. APP自动化测试-10.Appium中Desired Capabilities常用参数

    APP自动化测试-10.Appium中Desired Capabilities常用参数 文章目录 APP自动化测试-10.Appium中Desired Capabilities常用参数 前言 一.通用 ...

  2. appium简明教程(7)——Desired Capabilities详解

    Desired Capabilities在启动session的时候是必须提供的. Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情 ...

  3. Appium基础:Desired Capabilities详讲

    Desired Capabilities在启动session的时候是必须提供的,先看如下代码: Desired Capabilities本质上是key value的对象,他告诉appium serve ...

  4. Appium中Desired Capabilities参数设置

    参考: Appium(五):Desired Capabilities Appium Desired Capabilities 1. 平台通用参数设置 Desired Capabilities简单来说就 ...

  5. Appium里的Desired Capabilities设置

    要使用Appium控制一个APP,就要事先设置好Desired Capabilities里的内容 ,一般需要设置的有以下参数: {"platformName": "And ...

  6. Appium自动化测试基础 — 补充:Desired Capabilities参数介绍

    下面介绍一下Desired capabilities的参数: 提示: Desired capabilities的参数非常的多,但是在我们实际的工作用,常用的也就是其中的几个,我们没有必要全部都记下来, ...

  7. appium入门文档

    很是惭愧, appium的文档的入门可读性太差了.  全都是写给专家看的.各种概念,API, 函数解释的非常明白. 可是我就是不知道如何把它们串起来.(跟tishadow , angular有的一拼. ...

  8. APP自动化测试系列之Desired Capabilities详解

    VOL 163 28 2020-09 今天距2021年94天 这是ITester软件测试小栈第163次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  9. [洪流学堂]Hololens开发入门篇3:使用基本功能开发一个小应用

    本文首发于"洪流学堂"公众号. 洪流学堂,让你快人几步 本教程基于Unity2017.2及Visual Studio 2017 本教程编写时间:2017年12月4日 本文内容提要 ...

最新文章

  1. cam db num
  2. 有关/etc/resolv.conf、/etc/hosts、/etc/sysconfig/network
  3. LeetCode 110平衡二叉树-简单
  4. Python二级笔记(6)
  5. xpath中如何使用变量
  6. 计算机主机名在哪里看win7,大师教您win7系统查看win7系统电脑主机名的图文步骤...
  7. 蓝桥杯.历届试题: 核桃数量
  8. java.lang.UnsatisfiedLinkError: No implementation found for long com.autonavi.amap.mapcore.MapCore.n
  9. 应用随机过程——张波
  10. RPLIDAR最强参数详解
  11. 三大主流芯片架构特点
  12. 【前端GUI】—— 网站美工必须掌握的PS知识点思维导图
  13. 计算机怎样辅助英语听力教学,浅议多媒体计算机辅助大学英语教学的原则 大学英语听力怎么提高...
  14. 史上最详细How to Use Time Information Effectively Combining with Time Shift Module for Lipreading文章记录
  15. mysql 关联顺序_Mysql 多表关联链接顺序说明
  16. pc端和移动端集成第三方快捷登录 --- 微博为例
  17. mock与spy的区别
  18. 案例——封装一个轮播图插件
  19. Excel使用宏将表格的行增加固定的高度
  20. 旅行青蛙无限三叶草简单版:GG修改器

热门文章

  1. python压缩数据数组长度_python – 如何解压缩字节数组中的gzipped数据?
  2. 基于SSM的作业调度平台-java作业调度平台
  3. anguar4 共享服务在多个组件中数据通信
  4. Spring boot with Hive
  5. Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
  6. C++:STL之vector,deque对比
  7. java发送短信的发送报告处理
  8. 黑马程序员-面向对象-08天-2 (多态)
  9. 软件平台与框架的生命周期
  10. ARP过程——删除地址映射