Appium移动自动化测试-----(六)3.AppiumDesktop功能描述
一般功能
这些能力跨越多个驱动因素。
| 
 能力  | 
 描述  | 
 值  | 
| 
 automationName  | 
 使用哪个自动化引擎  | 
 Appium(默认)或Selendroid或者UiAutomator2或者Espresso对于Android或XCUITestiOS或者YouiEngine使用You.i引擎构建的应用程序  | 
| 
 platformName  | 
 使用哪个移动操作系统平台  | 
 iOS,Android或FirefoxOS  | 
| 
 platformVersion  | 
 移动操作系统版本  | 
 例如7.1,4.4  | 
| 
 deviceName  | 
 使用的移动设备或模拟器的种类  | 
 iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4,等....在iOS上,这应该是与仪器返回的有效设备之一instruments -s devices。在Android上,这个功能目前被忽略,尽管它仍然是必需的。  | 
| 
 app  | 
 一个或一个文件的绝对本地路径或远程http URL ,或者包含其中的一个。Appium将首先尝试在适当的设备上安装这个应用程序二进制文件。请注意,如果您指定和功能(请参阅下文),则此功能对于Android不是必需的。与...不兼容。.ipa.apk.zipappPackageappActivitybrowserName  | 
 /abs/path/to/my.apk 要么http://myapp.com/app.ipa  | 
| 
 browserName  | 
 移动网页浏览器的名称自动化。应该是一个空字符串,而不是自动化应用程序。  | 
 适用于iOS的“Safari”,适用于Android的“Chrome”,“Chromium”或“浏览器”  | 
| 
 newCommandTimeout  | 
 在假定客户端退出并结束会话之前,Appium将等待来自客户端的新命令(以秒为单位)  | 
 例如 60  | 
| 
 language  | 
 (Sim / Emu-only)为模拟器/仿真器设置的语言  | 
 例如 fr  | 
| 
 locale  | 
 (Sim / Emu-only)为模拟器/仿真器设置的语言环境  | 
 例如 fr_CA  | 
| 
 udid  | 
 连接的物理设备的唯一设备标识符  | 
 例如 1ae203187fc012g  | 
| 
 orientation  | 
 (Sim / Emu-only)从某个方向开始  | 
 LANDSCAPE 要么 PORTRAIT  | 
| 
 autoWebview  | 
 直接进入Webview上下文。默认false  | 
 true, false  | 
| 
 noReset  | 
 在此会话之前不要重置应用程序状态。在这里看到更多的细节  | 
 true, false  | 
| 
 fullReset  | 
 执行完整的重置。在这里看到更多的细节  | 
 true, false  | 
| 
 eventTimings  | 
 启用或禁用各种Appium内部事件的时间报告(例如,每个命令的开始和结束等)。默认为false。启用,使用true。然后将这些时间作为events回应查询当前会话的财产报告。请参阅事件时间文档了解此响应的结构。  | 
 例如, true  | 
| 
 enablePerformanceLogging  | 
 (仅限Web和webview)启用Chromedriver(在Android上)或Safari(在iOS上)性能记录(默认false)  | 
 true, false  | 
仅限Android
这些功能仅适用于基于Android的驱动程序(例如 UiAutomator2)。
| 
 能力  | 
 描述  | 
 值  | 
| 
 appActivity  | 
 要从包中启动的Android活动的活动名称。这往往需要在一个.(例如,.MainActivity而不是MainActivity)  | 
 MainActivity, .Settings  | 
| 
 appPackage  | 
 你想运行的Android应用程序的Java包  | 
 com.example.android.myApp, com.android.settings  | 
| 
 appWaitActivity  | 
 活动名称/名称,逗号分隔,您想要等待的Android活动  | 
 SplashActivity,SplashActivity,OtherActivity,*,*.SplashActivity  | 
| 
 appWaitPackage  | 
 您想等待的Android应用程序的Java包  | 
 com.example.android.myApp, com.android.settings  | 
| 
 appWaitDuration  | 
 用于等待appWaitActivity启动的超时(以毫秒为单位20000)(默认)  | 
 30000  | 
| 
 deviceReadyTimeout  | 
 在等待设备准备就绪的几秒钟内超时  | 
 5  | 
| 
 androidCoverage  | 
 完全合格的仪器类。通过-w在adb shell中,仪器-e覆盖率为true -w  | 
 com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation  | 
| 
 androidCoverageEndIntent  | 
 由您自己执行的广播操作,用于将覆盖转储到文件系统。传递到-a在adb外壳广播-a  | 
 com.example.pkg.END_EMMA  | 
| 
 androidDeviceReadyTimeout  | 
 用于等待设备在启动后准备就绪的秒数  | 
 例如, 30  | 
| 
 androidInstallTimeout  | 
 用于等待apk安装到设备的超时(以毫秒为单位)。默认为90000  | 
 例如, 90000  | 
| 
 androidInstallPath  | 
 安装前将在其中安装apk的设备上的目录名称。默认为/data/local/tmp  | 
 例如 /sdcard/Downloads/  | 
| 
 adbPort  | 
 用于连接到ADB服务器的端口(默认5037)  | 
 5037  | 
| 
 remoteAdbHost  | 
 可选的远程ADB服务器主机  | 
 例如:192.168.0.101  | 
| 
 androidDeviceSocket  | 
 Devtools套接字名称。只有当测试的应用程序是Chromium嵌入式浏览器时才需要。套接字由浏览器打开,并且Chromedriver作为devtools客户端连接到它。  | 
 例如, chrome_devtools_remote  | 
| 
 avd  | 
 avd的名称发射  | 
 例如, api19  | 
| 
 avdLaunchTimeout  | 
 avd启动并连接到ADB需要多长时间(默认值120000)  | 
 300000  | 
| 
 avdReadyTimeout  | 
 avd完成启动动画需要多长时间(默认120000)  | 
 300000  | 
| 
 avdArgs  | 
 启动avd时使用的其他仿真器参数  | 
 例如, -netfast  | 
| 
 useKeystore  | 
 使用自定义密钥库来签署apks,默认 false  | 
 true 要么 false  | 
| 
 keystorePath  | 
 自定义密钥库路径,默认〜/ .android / debug.keystore  | 
 例如, /path/to.keystore  | 
| 
 keystorePassword  | 
 自定义密钥库的密码  | 
 例如, foo  | 
| 
 keyAlias  | 
 密钥的别名  | 
 例如, androiddebugkey  | 
| 
 keyPassword  | 
 密钥的密钥  | 
 例如, foo  | 
| 
 chromedriverExecutable  | 
 webdriver可执行文件的绝对本地路径(如果Chromium embedder提供了自己的webdriver,则应该使用它来代替与Appium捆绑在一起的原始chromedriver)  | 
 /abs/path/to/webdriver  | 
| 
 autoWebviewTimeout  | 
 等待Webview上下文激活的时间(以毫秒为单位)。默认为2000  | 
 例如 4  | 
| 
 intentAction  | 
 意图操作将用于启动活动(默认android.intent.action.MAIN)  | 
 例如android.intent.action.MAIN,android.intent.action.VIEW  | 
| 
 intentCategory  | 
 意图类别,将用于启动活动(默认android.intent.category.LAUNCHER)  | 
 例如android.intent.category.LAUNCHER,android.intent.category.APP_CONTACTS  | 
| 
 intentFlags  | 
 将用于启动活动的标志(默认0x10200000)  | 
 例如 0x10200000  | 
| 
 optionalIntentArguments  | 
 将用于启动活动的其他意图参数。请参阅意向参数  | 
 例如--esn <EXTRA_KEY>,--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>等等。  | 
| 
 dontStopAppOnReset  | 
 在使用adb启动应用程序之前,不要停止被测试的应用程序的进程。如果被测试的应用程序是由另一个定位应用程序创建的,那么将其设置为false将允许在使用adb的测试应用程序启动过程中定位应用程序的过程仍然存在。换句话说,在dontStopAppOnReset设置的时候true,我们不会-S在adb shell am start通话中包含标志。有了这个能力被省略或设置为false,我们包括-S标志。默认false  | 
 true 要么 false  | 
| 
 unicodeKeyboard  | 
 启用Unicode输入,默认 false  | 
 true 要么 false  | 
| 
 resetKeyboard  | 
 使用unicodeKeyboard功能运行Unicode测试后,将键盘重置为原始状态。如果单独使用,则忽略。默认false  | 
 true 要么 false  | 
| 
 noSign  | 
 使用调试键跳过检查和签名应用程序,只能使用UiAutomator,而不能使用selendroid,默认false  | 
 true 要么 false  | 
| 
 ignoreUnimportantViews  | 
 调用setCompressedLayoutHierarchy()uiautomator函数。此功能可以加快测试执行速度,因为辅助功能命令将更快地忽略某些元素。被忽略的元素是不可能找到的,这就是为什么这个功能也被实现为可切换的设置以及功能。默认为false  | 
 true 要么 false  | 
| 
 disableAndroidWatchers  | 
 禁用观察应用程序没有响应和应用程序崩溃的android观察者,这将减少Android设备/模拟器上的CPU使用率。这个功能只能用于UiAutomator,而不能用于selendroid,默认false  | 
 true 要么 false  | 
| 
 chromeOptions  | 
 允许ChromeDriver传递chromeOptions功能。有关更多信息,请参阅chromeOptions  | 
 chromeOptions: {args: ['--disable-popup-blocking']}  | 
| 
 recreateChromeDriverSessions  | 
 在移至非ChromeDriver网页浏览的情况下杀死ChromeDriver会话。默认为false  | 
 true 要么 false  | 
| 
 nativeWebScreenshot  | 
 在Web上下文中,使用本地(adb)方法截取屏幕截图,而不是代理ChromeDriver。默认为false  | 
 true 要么 false  | 
| 
 androidScreenshotPath  | 
 将要放置屏幕截图的设备上的目录名称。默认为/data/local/tmp  | 
 例如 /sdcard/screenshots/  | 
| 
 autoGrantPermissions  | 
 让Appium自动确定您的应用程序需要哪些权限,并在安装时将其授予应用程序。默认为false  | 
 true 要么 false  | 
| 
 networkSpeed  | 
 设置网络速度模拟。指定最大的网络上传和下载速度。默认为full  | 
 ['full','gsm', 'edge', 'hscsd', 'gprs', 'umts', 'hsdpa', 'lte', 'evdo']检查-netspeed选项有关avds速度仿真的更多信息  | 
| 
 gpsEnabled  | 
 在开始会话之前,切换模拟器的gps位置提供程序。默认情况下,仿真器将根据设置的方式启用或不启用此选项。  | 
 true 要么 false  | 
| 
 isHeadless  | 
 true当不需要显示设备显示时,将此功能设置为无运行模拟器。false是默认值。isHeadless也支持iOS,请检查XCUITest的具体功能。  | 
 例如, true  | 
仅限iOS
这些功能仅适用于XCUITest驱动程序和过时的UIAutomation驱动程序。
| 
 能力  | 
 描述  | 
 值  | 
| 
 calendarFormat  | 
 (仅限SIM)为iOS模拟器设置的日历格式  | 
 例如 gregorian  | 
| 
 bundleId  | 
 测试中的应用程序的捆绑ID。用于在真实设备上启动应用程序或在测试启动期间使用其他需要包ID的大写字母。要使用软件包ID在真实设备上运行测试,可以省略“应用”功能,但必须提供“udid”。  | 
 例如 io.appium.TestApp  | 
| 
 udid  | 
 连接的物理设备的唯一设备标识符  | 
 例如 1ae203187fc012g  | 
| 
 launchTimeout  | 
 假设它挂起和失败会话之前以毫秒为单位等待仪器的时间  | 
 例如 20000  | 
| 
 locationServicesEnabled  | 
 (仅限SIM)强制定位服务处于打开或关闭状态。默认是保持当前的模拟设置。  | 
 true 要么 false  | 
| 
 locationServicesAuthorized  | 
 (仅限SIM)通过plist将位置服务设置为授权或未授权,以便位置服务警报不会弹出。默认是保持当前的模拟设置。请注意,如果您使用此设置,您还必须使用该bundleId功能发送您的应用的捆绑ID。  | 
 true 要么 false  | 
| 
 autoAcceptAlerts  | 
 如果弹出,则自动接受所有iOS警报。这包括隐私访问权限提醒(例如,位置,联系人,照片)。默认是false。不适用于XCUITest基于测试。  | 
 true 要么 false  | 
| 
 autoDismissAlerts  | 
 如果弹出,则自动关闭所有iOS警报。这包括隐私访问权限提醒(例如,位置,联系人,照片)。默认是false。不适用于XCUITest基于测试。  | 
 true 要么 false  | 
| 
 nativeInstrumentsLib  | 
 使用本机intruments lib(即禁用仪器,无延迟)。  | 
 true 要么 false  | 
| 
 nativeWebTap  | 
 (仅限SIM)在Safari中启用“真实”,非基于JavaScript的网页浏览。默认:false。警告:根据视口的大小/比例,这可能无法准确地点击一个元素  | 
 true 要么 false  | 
| 
 safariInitialUrl  | 
 (仅限SIM)(> = 8.1)初始Safari浏览器网址,默认为本地欢迎页面  | 
 例如 https://www.github.com  | 
| 
 safariAllowPopups  | 
 (仅限Sim)允许JavaScript在Safari中打开新窗口。默认保持当前的模拟设置  | 
 true 要么 false  | 
| 
 safariIgnoreFraudWarning  | 
 (仅限SIM)防止Safari显示欺诈网站警告。默认保持当前的模拟设置。  | 
 true 要么 false  | 
| 
 safariOpenLinksInBackground  | 
 (仅限SIM)Safari是否应允许在新窗口中打开链接。默认保持当前的模拟设置。  | 
 true 要么 false  | 
| 
 keepKeyChains  | 
 (Sim-only)当appium会话开始/结束时是否保留钥匙串(Library / Keychains)  | 
 true 要么 false  | 
| 
 localizableStringsDir  | 
 在哪里寻找可本地化的字符串。默认en.lproj  | 
 en.lproj  | 
| 
 processArguments  | 
 使用工具传递给AUT的参数  | 
 例如, -myflag  | 
| 
 interKeyDelay  | 
 输入时发送到元素的击键之间的延迟,以毫秒为单位。  | 
 例如, 100  | 
| 
 showIOSLog  | 
 是否显示从appium日志中的设备捕获的任何日志。默认false  | 
 true 要么 false  | 
| 
 sendKeyStrategy  | 
 用于将测试类型输入测试领域的策略。模拟器默认:oneByOne。实际设备默认值:grouped  | 
 oneByOne,grouped或者setValue  | 
| 
 screenshotWaitTimeout  | 
 以秒为单位的最大超时等待生成屏幕截图。默认:10  | 
 例如, 5  | 
| 
 waitForAppScript  | 
 ios自动化脚本用于确定应用程序是否已启动,默认情况下系统等待页面源不为空。结果必须是布尔值  | 
 例如true;,target.elements().length > 0;,$.delay(5000); true;  | 
| 
 webviewConnectRetries  | 
 向远程调试器发送连接消息以获取webview的次数。默认:8  | 
 例如, 12  | 
| 
 appName  | 
 被测应用程序的显示名称。用于在iOS 9+中自动化后台应用程序。  | 
 例如, UICatalog  | 
| 
 customSSLCert  | 
 (仅限Sim / Emu)向模拟器添加SSL证书。  | 
 例如   | 
| 
 webkitResponseTimeout  | 
 (仅限实际设备)设置时间(以毫秒为单位)以等待Safari会话中WebKit的响应。默认为5000  | 
 例如, 10000  | 
{
"platformName": "Android",
"platformVersion": "7.0",
"deviceName": "FFK0116B30000505",
"app": "D:\\weixin.apk",
"noReset": true,
"adbPort": "5148"
}
{
"platformName": "Android",
"deviceName": "FFK0116B30000505",
"platformVersion": "7.0",
"adbPort": "5148",
"appPackage": "com.android.calculator2",
"appActivity": "com.android.calculator2.Calculator"
}
from appium import webdriver
from time import sleep
desired_caps = {
'platformName': 'Android',
'deviceName': 'B7E0117228000104',
'platformVersion': '7.0',
'adbPort' : '5148',
'appPackage':'com.android.calculator2',
'appActivity':'com.android.calculator2.Calculator'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_id("com.android.calculator2:id/digit_1").click()
driver.find_element_by_id("com.android.calculator2:id/digit_5").click()
driver.find_element_by_id("com.android.calculator2:id/digit_9").click()
driver.find_element_by_id("com.android.calculator2:id/del").click()
driver.find_element_by_id("com.android.calculator2:id/digit_9").click()
driver.find_element_by_id("com.android.calculator2:id/digit_8").click()
driver.find_element_by_id("com.android.calculator2:id/op_add").click()
driver.find_element_by_id("com.android.calculator2:id/digit_6").click()
driver.find_element_by_id("com.android.calculator2:id/op_div").click()
driver.find_element_by_id("com.android.calculator2:id/digit_8").click()
driver.find_element_by_id("com.android.calculator2:id/eq").click()
sleep(3)
driver.quit()
appium官网https://bitbucket.org/appium/appium.app/downloads/
Appium-desktop 下载地址:https://github.com/appium/appium-desktop/releases
Appium 如何连接第三方模拟器,连接时把你自己的adb.exe 拷贝一份,将nox_adb.exe 替换掉, 替换前备份。原因是你俩的adb版本不一致。
adb connect 127.0.0.1:62001 夜游模拟器
adb启动问题:Invalid argument: cannot open transport registration socketpair could not read ok from ADB Server failed to start daemon * error: cannot connect to daemon
解决办法:
关闭系统自带的防火墙,重启OK
转自:http://www.cnblogs.com/tester-l/p/7810915.html
Appium移动自动化测试-----(六)3.AppiumDesktop功能描述的更多相关文章
- 手机自动化测试:搭建appium手机自动化测试开发环境
		
手机自动化测试:搭建appium手机自动化测试开发环境 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...
 - RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难
		
消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...
 - Appium移动自动化测试(一)--工具软件安装
		
Appium移动自动化测试(一)--工具软件安装 详情参考-- http://www.cnblogs.com/fnng/p/4552438.html 第一节 安装node.js Appium 官方网 ...
 - TIB自动化测试快讯 - Appium手机自动化测试学习资料精选
		
TIB自动化测试快讯 - Appium手机自动化测试学习资料精选 Appium+Android+Javahttp://automationqa.com/forum.php?mod=viewthre ...
 - Appium移动自动化测试(四)--one demo
		
继续更新. -------------------------------------------- 第四节 安装Appium Client Appium Client是对webdriver原生ap ...
 - Appium移动自动化测试(四)--one demo(转)
		
Appium移动自动化测试(四)--one demo 2015-06-15 20:41 by 虫师, 40514 阅读, 34 评论, 收藏, 编辑 继续更新. ------------------- ...
 - Appium移动自动化测试(三)--安装Android模拟器(转)
		
Appium移动自动化测试(三)--安装Android模拟器 2015-06-08 10:33 by 虫师, 30828 阅读, 9 评论, 收藏, 编辑 当Android SDK安装完成之后,并不意 ...
 - Appium移动自动化测试(二)--安装Android开发环境(转)
		
Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节 ...
 - Appium移动自动化测试(一)--安装Appium(转)
		
Appium移动自动化测试(一)--安装Appium 2015-05-30 17:48 by 虫师, 70668 阅读, 13 评论, 收藏, 编辑 Appium 自动化测试是很早之前就想学习和研究的 ...
 - mac上搭建appium+IOS自动化测试环境(一)
		
阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...
 
随机推荐
- vim的四大模式
			
vim的四大模式 总结了下我经常使用的模式中的一些基本命令 正常模式 通过vim进入到界面, 首次即为正常模式 编辑模式 (i,a,o,s,I,A,S) i: 当前节点插入光标点 a: 下一个字母后插 ...
 - 页面上有tab,如何点击加载更多?
			
加载更多是一个很简单的东西.但是也有几点需要注意: 1.首先在你切换tab的时候,要么在调用这个函数的时候将这个的thispage设为1,要么在切换tab的时候将这个thispage设为1,当你将这个 ...
 - CSS(1)
			
使用CSS的注意点: 1.style标签必须写在head标签的开始标签和结束标签之间(也就是必须和title标签是兄弟关系). 2.style标签中的type属性其实可以不用写,默认就是type=&q ...
 - NoSql数据库Redis系列(1)——Redis简介
			
一.redis介绍 (一).Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点 ...
 - C格式字符串转为二叉树
			
最近在LeetCode做题,二叉树出现错误时不好排查,于是自己写了一个函数,将前序遍历格式字串转换成二叉树. 形如 "AB#D##C##" 的字符串,"#"表示 ...
 - HearthBuddy中的class276中的地址对应
			
2019年09月的 intptr_0 = method_18("mono.dll"); intptr_31 = intptr_0 + 522030; intptr_28 = int ...
 - linux中截取字段与#、$区别
			
1.Linux shell 截取字符变量的前8位 实现方法有如下几种: expr substr “$a” 1 8 echo $a|awk ‘{print substr(,1,8)}’ echo $a| ...
 - onenote架设在局域网服务器
			
1.服务器端工作 1.1.在局域网服务器磁盘建个 文件夹,命名为 abc 1.2.右键共享,添加用户everyone 权限设置为可读写 不需要安装onenote 2.客户端工作 2.1.在客户端服务器 ...
 - Hive小文件处理
			
小文件是如何产生的: 动态分区插入数据的时候,会产生大量的小文件,从而导致map数量的暴增 数据源本身就包含有大量的小文件 reduce个数越多,生成的小文件也越多 小文件的危害: 从HIVE角度来看 ...
 - docker 打印带时间的日志
			
1, 根据容器日志查看连接情况 docker logs 684 (因为从6.30日开是打印,太慢了.) 2,docker带参数的打印出日志 docker logs 684 --since=&quo ...