Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)
简介
前边介绍的都是通过按钮点击启动按钮来启动appium服务,有的小伙伴或者童鞋们乍一听可能不信,或者会问如何通过命令行启动appium服务呢?且听宏哥一一道来。
一睹为快
其实相当的简单,不看不知道,一看吓一跳,直接在docs命令窗口输入命令:appium 就可以运行起appium
这回小伙伴和童鞋们相信了吧,都启动来了。
第一行:欢迎使用Appium,版本 v1.8.1
第二行:Appium启动成功,启动ip为默认的 0.0.0.0,端口为默认的 4723;默认即表示“不指定”的情况下;
默认端口4723。此时小伙伴或者童鞋们又会问,那么如何修改端口了,不要急,听宏哥慢慢地道来。
修改appium启动端口
appium启动默认端口4723,如果要指定端口,通过以下命令:appium -p 端口号,例图修改端口4725
2个端口
指定端口的设备,输入命令:appium -p 端口1 -bp 端口2 设备编号
appium -a 127.0.0.1 -p 4723 --session-override
-a 是指定监听的ip(也可写成 --address),后面“127.0.0.1”可以改为你需要的ip地址;
-p 是指定监听的端口(也可写成 --port),也可以修改为你需要的端口;
--session-override 是指覆盖之前的session;
appium -a 127.0.0.1 -p 4727 -bp 4728 --chromedriver-port 9519 -U xiaomi --session-override
-bp 是连接Android设备bootstrap的端口号,默认是4724(也可写成--bootstrap-port)
--chromedriver-port 是chromedriver运行需要指定的端口号,默认是9515
-U 是连接的设备名称,如"adb devices"获取的设备标识(也可写成--udid)
服务器标志
所有的标志都是可选的,但是有一些标志需要组合在一起才能生效。
标志 | 默认值 | 描述 | 例子 |
---|---|---|---|
--shell |
null | 进入 REPL 模式 | |
--localizable-strings-dir |
en.lproj | IOS only: 定位 .strings所在目录的相对路径 | --localizable-strings-dir en.lproj |
--app |
null | iOS: 基于模拟器编译的 app 的绝对路径或者设备目标的 bundle_id; Android: apk 文件的绝对路径--app /abs/path/to/my.app |
|
--ipa |
null | (IOS-only) .ipa 文件的绝对路径 | --ipa /abs/path/to/my.ipa |
-U , --udid |
null | 连接物理设备的唯一设备标识符 | --udid 1adsf-sdfas-asdf-123sdf |
-a , --address |
0.0.0.0 | 监听的 ip 地址 | --address 0.0.0.0 |
-p , --port |
4723 | 监听的端口 | --port 4723 |
-ca , --callback-address |
null | 回调IP地址 (默认: 相同的IP地址) | --callback-address 127.0.0.1 |
-cp , --callback-port |
null | 回调端口号 (默认: 相同的端口号) | --callback-port 4723 |
-bp , --bootstrap-port |
4724 | (Android-only) 连接设备的端口号 | --bootstrap-port 4724 |
-k , --keep-artifacts |
false | 弃用,无效。trace信息现在保留tmp目录下,每次运行前会清除该目录中的信息。 也可以参考 –trace-dir 。 | |
-r , --backend-retries |
3 | (iOS-only) 遇到 crash 或者 超时,Instrument 重新启动的次数。 | --backend-retries 3 |
--session-override |
false | 允许 session 被覆盖 (冲突的话) | |
--full-reset |
false | (iOS) 删除整个模拟器目录。 (Android) 通过卸载应用(而不是清除数据)重置应用状态。在 Android 上,session 完成后也会删除应用。 | |
--no-reset |
false | session 之间不重置应用状态 (iOS: 不删除应用的 plist 文件; Android: 在创建一个新的 session 前不删除应用。) | |
-l , --pre-launch |
false | 在第一个 session 前,预启动应用 (iOS 需要 –app 参数,Android 需要 –app-pkg 和 –app-activity) | |
-lt , --launch-timeout |
90000 | (iOS-only) 等待 Instruments 启动的时间 | |
-g , --log |
null | 将日志输出到指定文件 | --log /path/to/appium.log |
--log-level |
debug | 日志级别; 默认 (console[:file]): debug[:debug] | --log-level debug |
--log-timestamp |
false | 在终端输出里显示时间戳 | |
--local-timezone |
false | 使用本地时间戳 | |
--log-no-colors |
false | 不在终端输出中显示颜色 | |
-G , --webhook |
null | 同时发送日志到 HTTP 监听器 | --webhook localhost:9876 |
--native-instruments-lib |
false | (IOS-only) iOS 内建了一个怪异的不可能避免的延迟。我们在 Appium 里修复了它。如果你想用原来的,你可以使用这个参数。 | |
--app-pkg |
null | (Android-only) 你要运行的apk的java包。 (例如, com.example.android.myApp) | --app-pkg com.example.android.myApp |
--app-activity |
null | (Android-only) 打开应用时,启动的 Activity 的名字(比如, MainActivity) | --app-activity MainActivity |
--app-wait-package |
false | (Android-only) 你想等待的 Activity 的包名。(比如, com.example.android.myApp) | --app-wait-package com.example.android.myApp |
--app-wait-activity |
false | (Android-only) 你想等待的 Activity 名字(比如, SplashActivity) | --app-wait-activity SplashActivity |
--android-coverage |
false | (Android-only) 完全符合条件的 instrumentation 类。 作为命令 adb shell am instrument -e coverage true -w 的 -w 的参数 | --android-coverage com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation |
--avd |
null | (Android-only) 要启动的 avd 的名字 | |
--avd-args |
null | (Android-only) 添加额外的参数给要启动avd | --avd-args -no-snapshot-load |
--device-ready-timeout |
5 | (Android-only) 等待设备准备好的时间,以秒为单位 | --device-ready-timeout 5 |
--safari |
false | (IOS-Only) 使用 Safari 应用 | |
--device-name |
null | 待使用的移动设备名字 | --device-name iPhone Retina (4-inch), Android Emulator |
--platform-name |
null | 移动平台的名称: iOS, Android, or FirefoxOS | --platform-name iOS |
--platform-version |
null | 移动平台的版本 | --platform-version 7.1 |
--automation-name |
null | 自动化工具的名称: Appium or Selendroid | --automation-name Appium |
--browser-name |
null | 移动浏览器的名称: Safari or Chrome | --browser-name Safari |
--default-device , -dd |
false | (IOS-Simulator-only) 使用instruments自己启动的默认模拟器 | |
--force-iphone |
false | (IOS-only) 无论应用要用什么模拟器,强制使用 iPhone 模拟器 | |
--force-ipad |
false | (IOS-only) 无论应用要用什么模拟器,强制使用 iPad 模拟器 | |
--language |
null | iOS / Android 模拟器的语言 | --language en |
--locale |
null | Locale for the iOS simulator / Android Emulator | --locale en_US |
--calendar-format |
null | (IOS-only) iOS 模拟器的日历格式 | --calendar-format gregorian |
--orientation |
null | (IOS-only) 初始化请求时,使用 LANDSCAPE (横屏) 或者 PORTRAIT (竖屏) | --orientation LANDSCAPE |
--tracetemplate |
null | (IOS-only) 指定 Instruments 使用的 tracetemplate 文件 | --tracetemplate /Users/me/Automation.tracetemplate |
--show-sim-log |
false | (IOS-only) 如果设置了, iOS 模拟器的日志会写到终端上来 | |
--show-ios-log |
false | (IOS-only) 如果设置了, iOS 系统的日志会写到终端上来 | |
--nodeconfig |
null | 指定 JSON 格式的配置文件 ,用来在 selenium grid 里注册 appiumd | --nodeconfig /abs/path/to/nodeconfig.json |
-ra , --robot-address |
0.0.0.0 | robot 的 ip 地址 | --robot-address 0.0.0.0 |
-rp , --robot-port |
-1 | robot 的端口地址 | --robot-port 4242 |
--selendroid-port |
8080 | 用来和 Selendroid 交互的本地端口 | --selendroid-port 8080 |
--chromedriver-port |
9515 | ChromeDriver运行的端口 | --chromedriver-port 9515 |
--chromedriver-executable |
null | ChromeDriver 可执行文件的完整路径 | |
--use-keystore |
false | (Android-only) 设置签名 apk 的 keystore | |
--keystore-path |
(Android-only) keystore 的路径 | ||
--keystore-password |
android | (Android-only) keystore 的密码 | |
--key-alias |
androiddebugkey | (Android-only) Key 的别名 | |
--key-password |
android | (Android-only) Key 的密码 | |
--show-config |
false | 打印 Appium 服务器的配置信息,然后退出 | |
--no-perms-check |
false | 跳过Appium对是否可以读/写必要文件的检查 | |
--command-timeout |
60 | 默认所有会话的接收命令超时时间 (在超时时间内没有接收到新命令,自动关闭会话)。 会被新的超时时间覆盖 | |
--keep-keychains |
false | (iOS) 当 Appium 启动或者关闭的时候,是否保留 keychains (Library/Keychains) | |
--strict-caps |
false | 如果所选设备是appium不承认的有效设备,会导致会话失败 | |
--isolate-sim-device |
false | Xcode 6存在一个bug,那就是一些平台上如果其他模拟器设备先被删除时某个特定的模拟器只能在没有任何错误的情况下被建立。这个选项导致了Appium不得不删除除了正在使用设备以外其他所有的设备。请注意这是永久性删除,你可以使用simctl或xcode管理被Appium使用的设备类别。 | |
--tmp |
null | 可以被Appium用来管理临时文件的目录(绝对路径),比如存放需要移动的内置iOS应用程序。 默认的变量为 APPIUM_TMP_DIR ,在 *nix/Mac 为 /tmp 在windows上使用环境便令 TEMP 设定的目录。 |
|
--trace-dir |
null | 用于保存iOS instruments trace的 appium 目录,是绝对路径, 默认为 /appium-instruments | |
--intent-action |
android.intent.action.MAIN | (Android-only) 用于启动 activity 的intent action | --intent-action android.intent.action.MAIN |
--intent-category |
android.intent.category.LAUNCHER | (Android-only) 用于启动 activity 的intent category | --intent-category android.intent.category.APP_CONTACTS |
--intent-flags |
0x10200000 | (Android-only) 启动 activity 的标志 | --intent-flags 0x10200000 |
--intent-args |
null | (Android-only) 启动 activity 时附带额外的 intent 参数 | --intent-args 0x10200000 |
--suppress-adb-kill-server |
false | (Android-only) 如果被设定,阻止Appium杀掉adb实例。 |
实战
- -a : 默认服务地址 127.0.0.1
- -p: 端口号 4730 (默认4723)
- -U: udid ,android的udid就是adb devices查看到的前面那一串
- --no-reset 不重置app 与desired_caps配置里面的 {"noReset": True,} 一个意思
cmd进入docs命令窗口输入:
appium -a 127.0.0.1 -p -U emulator- --no-reset
小结
1.遇到的问题就是输入appium报错了,懵逼了,怎么办,不急一步一步解决它。
这个问题是由于安装的Node的版本太高,而你安装的appium版本较低造成,那么解决办法,就是要么将Node的版本降低,要么将appium版本升高即可。反正宏哥是这么解决了,如果你遇到了如果你遇到了,可以试一试宏哥的方法,但是不能打包票哈。
2.好了,时间不早了,关于appium的服务命令行就到这里吧!早点休息吧!
您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得点波 推荐 哦!!!(点击右边的小球即可!(^__^) 嘻嘻……)
个人公众号 微信群 (微信群已满100,可以加宏哥的微信拉你进群,请备注:进群)
Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)的更多相关文章
- Appium+python自动化(三十)- 实现代码与数据分离 - 数据配置-yaml(超详解)
简介 本篇文章主要介绍了python中yaml配置文件模块的使用让其完成数据和代码的分离,宏哥觉得挺不错的,于是就义无反顾地分享给大家,也给大家做个参考.一起跟随宏哥过来看看吧. 思考问题 前面我们配 ...
- Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)
简介 前边具体操作和实战已经讲解和分享了很多了,但是一些android的一些基础知识,你又知道多少了,你都掌握了吗?这篇就由宏哥给小伙伴们既是一个分享,又是对前边的一次总结.为什么要对这些做一个简单的 ...
- Python进阶(三十五)-Fiddler命令行和HTTP断点调试
Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的se ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...
- 《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. ...
- Appium+python自动化(十六)- ADB命令,知否知否,应是必知必会(超详解)
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或 ...
- 《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
1.简介 在做web自动化时,有些情况selenium的api无法完成,需要通过第三方手段比如js来完成实现,比如去改变某些元素对象的属性或者进行一些特殊的操作,本文将来讲解怎样来调用JavaScri ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
- Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解)
简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个 ...
随机推荐
- Linux运维跳槽必备
Linux运维跳槽必备的40道面试精华题 1.什么是运维?什么是游戏运维?1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了 ...
- Java项目案例之---登录和修改(JSP)
登录和修改(JSP) 通过案例学习jsp的常用知识点: 1.创建一个Map集合,用于存放学生信息,将学生信息存入Map中 2.通过page将需要的包导入 3.用request.getParameter ...
- 找bug的过程
关于昨天程序出差我找bug的过程记录 昨天才程序 https://www.cnblogs.com/pythonywy/p/11006273.html ├── xxxx │ ├── src.py │ └ ...
- Spring集成Shiro使用小结
shiro的认证流程 Application Code:应用程序代码,由开发人员负责开发的 Subject:框架提供的接口,代表当前用户对象 SecurityManager:框架提供的接口,代表安全管 ...
- C#3.0新增功能06 对象和集合初始值设定项
连载目录 [已更新最新开发文章,点击查看详细] 使用 C# 可以在单条语句中实例化对象或集合并执行成员分配. 对象初始值设定项 使用对象初始值设定项,你可以在创建对象时向对象的任何可访问字段或属 ...
- [leetcode] 905. Sort Array By Parity [easy]
原题链接 很水的一道题,就是数组内部交换. 水题就想着减少复杂度嘛,于是学到一种交换写法. class Solution { public: vector<int> sortArrayBy ...
- [leetcode] 110. Balanced Binary Tree (easy)
原题链接 水题 深度搜索每一节点的左右深度,左右深度差大于1就返回false. class Solution { public: bool isBalanced(TreeNode *root) { b ...
- python自动化测试之DDT数据驱动
时隔已久,再次冒烟,自动化测试工作仍在继续,自动化测试中的数据驱动技术尤为重要,不然咋去实现数据分离呢,对吧,这里就简单介绍下与传统unittest自动化测试框架匹配的DDT数据驱动技术. 话不多说, ...
- hive show databases 添加条件
show databases like 'test012301' ; 通配符: show databases like 'a*';
- Java编程思想,初学者推荐看看
这是一本介绍Java编程思想,如何从面向过程的编程思想转换为面向对象的编程思想.我个人是比较建议新手看一下的,思想掌握了,学起来自然也就会方便很多的,我还有一些Java基础的数,有需要的可以找我要,都 ...