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)

服务器标志

所有的标志都是可选的,但是有一些标志需要组合在一起才能生效。

标志默认值描述例子
--shellnull进入 REPL 模式
--localizable-strings-diren.lprojIOS only: 定位 .strings所在目录的相对路径--localizable-strings-dir en.lproj
--appnulliOS: 基于模拟器编译的 app 的绝对路径或者设备目标的 bundle_id; Android: apk 文件的绝对路径--app /abs/path/to/my.app
--ipanull(IOS-only) .ipa 文件的绝对路径--ipa /abs/path/to/my.ipa
-U--udidnull连接物理设备的唯一设备标识符--udid 1adsf-sdfas-asdf-123sdf
-a--address0.0.0.0监听的 ip 地址--address 0.0.0.0
-p--port4723监听的端口--port 4723
-ca--callback-addressnull回调IP地址 (默认: 相同的IP地址)--callback-address 127.0.0.1
-cp--callback-portnull回调端口号 (默认: 相同的端口号)--callback-port 4723
-bp--bootstrap-port4724(Android-only) 连接设备的端口号--bootstrap-port 4724
-k--keep-artifactsfalse弃用,无效。trace信息现在保留tmp目录下,每次运行前会清除该目录中的信息。 也可以参考 –trace-dir 。
-r--backend-retries3(iOS-only) 遇到 crash 或者 超时,Instrument 重新启动的次数。--backend-retries 3
--session-overridefalse允许 session 被覆盖 (冲突的话)
--full-resetfalse(iOS) 删除整个模拟器目录。 (Android) 通过卸载应用(而不是清除数据)重置应用状态。在 Android 上,session 完成后也会删除应用。
--no-resetfalsesession 之间不重置应用状态 (iOS: 不删除应用的 plist 文件; Android: 在创建一个新的 session 前不删除应用。)
-l--pre-launchfalse在第一个 session 前,预启动应用 (iOS 需要 –app 参数,Android 需要 –app-pkg 和 –app-activity)
-lt--launch-timeout90000(iOS-only) 等待 Instruments 启动的时间
-g--lognull将日志输出到指定文件--log /path/to/appium.log
--log-leveldebug日志级别; 默认 (console[:file]): debug[:debug]--log-level debug
--log-timestampfalse在终端输出里显示时间戳
--local-timezonefalse使用本地时间戳
--log-no-colorsfalse不在终端输出中显示颜色
-G--webhooknull同时发送日志到 HTTP 监听器--webhook localhost:9876
--native-instruments-libfalse(IOS-only) iOS 内建了一个怪异的不可能避免的延迟。我们在 Appium 里修复了它。如果你想用原来的,你可以使用这个参数。
--app-pkgnull(Android-only) 你要运行的apk的java包。 (例如, com.example.android.myApp)--app-pkg com.example.android.myApp
--app-activitynull(Android-only) 打开应用时,启动的 Activity 的名字(比如, MainActivity)--app-activity MainActivity
--app-wait-packagefalse(Android-only) 你想等待的 Activity 的包名。(比如, com.example.android.myApp)--app-wait-package com.example.android.myApp
--app-wait-activityfalse(Android-only) 你想等待的 Activity 名字(比如, SplashActivity)--app-wait-activity SplashActivity
--android-coveragefalse(Android-only) 完全符合条件的 instrumentation 类。 作为命令 adb shell am instrument -e coverage true -w 的 -w 的参数--android-coverage com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation
--avdnull(Android-only) 要启动的 avd 的名字
--avd-argsnull(Android-only) 添加额外的参数给要启动avd--avd-args -no-snapshot-load
--device-ready-timeout5(Android-only) 等待设备准备好的时间,以秒为单位--device-ready-timeout 5
--safarifalse(IOS-Only) 使用 Safari 应用
--device-namenull待使用的移动设备名字--device-name iPhone Retina (4-inch), Android Emulator
--platform-namenull移动平台的名称: iOS, Android, or FirefoxOS--platform-name iOS
--platform-versionnull移动平台的版本--platform-version 7.1
--automation-namenull自动化工具的名称: Appium or Selendroid--automation-name Appium
--browser-namenull移动浏览器的名称: Safari or Chrome--browser-name Safari
--default-device-ddfalse(IOS-Simulator-only) 使用instruments自己启动的默认模拟器
--force-iphonefalse(IOS-only) 无论应用要用什么模拟器,强制使用 iPhone 模拟器
--force-ipadfalse(IOS-only) 无论应用要用什么模拟器,强制使用 iPad 模拟器
--languagenulliOS / Android 模拟器的语言--language en
--localenullLocale for the iOS simulator / Android Emulator--locale en_US
--calendar-formatnull(IOS-only) iOS 模拟器的日历格式--calendar-format gregorian
--orientationnull(IOS-only) 初始化请求时,使用 LANDSCAPE (横屏) 或者 PORTRAIT (竖屏)--orientation LANDSCAPE
--tracetemplatenull(IOS-only) 指定 Instruments 使用的 tracetemplate 文件--tracetemplate /Users/me/Automation.tracetemplate
--show-sim-logfalse(IOS-only) 如果设置了, iOS 模拟器的日志会写到终端上来
--show-ios-logfalse(IOS-only) 如果设置了, iOS 系统的日志会写到终端上来
--nodeconfignull指定 JSON 格式的配置文件 ,用来在 selenium grid 里注册 appiumd--nodeconfig /abs/path/to/nodeconfig.json
-ra--robot-address0.0.0.0robot 的 ip 地址--robot-address 0.0.0.0
-rp--robot-port-1robot 的端口地址--robot-port 4242
--selendroid-port8080用来和 Selendroid 交互的本地端口--selendroid-port 8080
--chromedriver-port9515ChromeDriver运行的端口--chromedriver-port 9515
--chromedriver-executablenullChromeDriver 可执行文件的完整路径
--use-keystorefalse(Android-only) 设置签名 apk 的 keystore
--keystore-path(Android-only) keystore 的路径
--keystore-passwordandroid(Android-only) keystore 的密码
--key-aliasandroiddebugkey(Android-only) Key 的别名
--key-passwordandroid(Android-only) Key 的密码
--show-configfalse打印 Appium 服务器的配置信息,然后退出
--no-perms-checkfalse跳过Appium对是否可以读/写必要文件的检查
--command-timeout60默认所有会话的接收命令超时时间 (在超时时间内没有接收到新命令,自动关闭会话)。 会被新的超时时间覆盖
--keep-keychainsfalse(iOS) 当 Appium 启动或者关闭的时候,是否保留 keychains (Library/Keychains)
--strict-capsfalse如果所选设备是appium不承认的有效设备,会导致会话失败
--isolate-sim-devicefalseXcode 6存在一个bug,那就是一些平台上如果其他模拟器设备先被删除时某个特定的模拟器只能在没有任何错误的情况下被建立。这个选项导致了Appium不得不删除除了正在使用设备以外其他所有的设备。请注意这是永久性删除,你可以使用simctl或xcode管理被Appium使用的设备类别。
--tmpnull可以被Appium用来管理临时文件的目录(绝对路径),比如存放需要移动的内置iOS应用程序。 默认的变量为 APPIUM_TMP_DIR ,在 *nix/Mac 为 /tmp 在windows上使用环境便令 TEMP 设定的目录。
--trace-dirnull用于保存iOS instruments trace的 appium 目录,是绝对路径, 默认为 /appium-instruments
--intent-actionandroid.intent.action.MAIN(Android-only) 用于启动 activity 的intent action--intent-action android.intent.action.MAIN
--intent-categoryandroid.intent.category.LAUNCHER(Android-only) 用于启动 activity 的intent category--intent-category android.intent.category.APP_CONTACTS
--intent-flags0x10200000(Android-only) 启动 activity 的标志--intent-flags 0x10200000
--intent-argsnull(Android-only) 启动 activity 时附带额外的 intent 参数--intent-args 0x10200000
--suppress-adb-kill-serverfalse(Android-only) 如果被设定,阻止Appium杀掉adb实例。

分类: python+Appium

实战

  • -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 4730 -U emulator-5554 --no-reset

小结

 1.遇到的问题就是输入appium报错了,懵逼了,怎么办,不急一步一步解决它。

这个问题是由于安装的Node的版本太高,而你安装的appium版本较低造成,那么解决办法,就是要么将Node的版本降低,要么将appium版本升高即可。反正宏哥是这么解决了,如果你遇到了如果你遇到了,可以试一试我的方法,但是不能打包票哈。

2.好了,关于appium的服务命令行就到这里吧!


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/54245.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux_进程状态

目录 一. 概念铺设 状态是什么? 传统操作系统的状态转换图 二. 传统操作系统状态 1. 运行 2. 阻塞 3. 挂起 三. linux 中的进程状态 1. 总体介绍 2. R 3. S 4. D kill -9 D vs S 5. T kill T vs S 6. Z 什么是僵尸状态? 僵尸进程的危害 …

详解Mybatis之自动映射 自定义映射问题

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 Mybatis版本:3.5.6 文章目录 一、Mybatis中的自动映射是什么?二、Mybatis中的自定义映射是什么?三、为什…

Spring的创建及使用

文章目录 什么是SpringSpring项目的创建存储Bean对象读取Bean对象getBean()方法 更简单的读取和存储对象的方式路径配置使用类注解存储Bean对象关于五大类注解使用方法注解Bean存储对象Bean重命名 Bean对象的读取 使用Resource注入对象Resource VS Autowired同一类型多个bean对…

租赁固定资产管理

智能租赁资产管理系统可以为企业单位提供RFID资产管理系统。移动APP资产管理,准确总结易损耗品和固定资金,从入库到仓库库存实时跟踪,控制出库和入库的全过程。同时,备件和耗材与所属资产设备有关,便于备件的申请和管理…

express学习笔记3 - 三大件

便于统一管理router,创建 router 文件夹,创建 router/index.js: const express require(express)// 注册路由 const router express.Router() router.get(/,function(req,res){res.send(让我们开始express之旅) }) /*** 集中处理404请求的…

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序3

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

python与深度学习(十二):CNN和猫狗大战二

目录 1. 说明2. 猫狗大战的CNN模型测试2.1 导入相关库2.2 加载模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章猫狗大战训练的模型进行测试。…

NIDEC COMPONENTS尼得科科宝滑动型DIP开关各系列介绍

今天AMEYA360对尼得科科宝电子滑动型DIP开关各系列参数进行详细介绍,方便大家选择适合自己的型号。 系列一、滑动型DIP开关 CVS 针脚数:1, 2, 3, 4, 8 安装类型:表面贴装,通孔 可水洗:无 端子类型:PC引脚(只…

PostgreSql 进程及内存结构

一、进程及内存架构 PostgreSQL 数据库运行时,使用如下命令可查询数据库进程,正对应上述结构图。 [postgreslocalhost ~]$ ps -ef|grep post postgres 8649 1 0 15:05 ? 00:00:00 /app/pg13/bin/postgres -D /data/pg13/data postgres …

一文掌握linux系统管理命令

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

百度:文心千帆 网页搭建和示例测评

文章目录 官方文档代码示例token获取流式回答官网完整示例 制作一个网页端 官方文档 https://cloud.baidu.com/doc/WENXINWORKSHOP/s/flfmc9do2按照这个操作进行创建一个应用: 代码示例 token获取 # 填充API Key与Secret Key import requests import jsondef ma…

earth靶机详解

earth靶机复盘 靶场下载地址:https://download.vulnhub.com/theplanets/Earth.ova 这个靶场还是非常有意思的,值得去打一下。 我们对拿到的ip进行一个单独全面的扫描,发现有两个DNS解析。 就把这两条解析添加到hosts文件中去,要…

Java maven的下载解压配置(保姆级教学)

mamen基本概念 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以…

分布式异步任务处理组件(五)

节点上线和下线的逻辑-- 节点下线分为两种--心跳失败主动或被动和主节点断开连接,但是节点本身没有发生重启;第二种就是节点宕机重启--其实这两中情况下处理逻辑都是一样的,只是节点本身如果还能消费到kafka的时候可以继续执行任务但是不能从…

Web-7-深入理解Cookie与Session:实现用户跟踪和数据存储

深入理解Cookie与Session:实现用户跟踪和数据存储 今日目标 1.掌握客户端会话跟踪技术Cookie 2.掌握服务端会话跟踪技术Sesssion 1.会话跟踪技术介绍 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断…

[SSM]GoF之代理模式

目录 十四、GoF之代理模式 14.1对代理模式的理解 14.2静态代理 14.3动态代理 14.3.1JDK动态代理 14.3.2CGLIB动态代理 十四、GoF之代理模式 14.1对代理模式的理解 场景:拍电影的时候,替身演员去代理演员完成表演。这就是一个代理模式。 演员为什…

数控机床主轴品牌选择及选型,如何维护和保养?

数控机床主轴品牌选择及选型,如何维护和保养? 数控机床是一种高精度、高效率、高自动化的机床。其中,主轴是数控机床的核心部件,承担着转动工件、切削加工的任务,决定了加工的转速、切削力度和加工效率。因此&#xff…

解决多线程环境下单例模式同时访问生成多个实例

如何满足单例:1.构造方法是private、static方法、if语句判断 ①、单线程 Single类 //Single类,定义一个GetInstance操作,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例 public class LazySi…

八大排序算法--快速排序(动图理解)

快速排序 概念 快速排序是对冒泡排序的一种改进。其基本原理是通过选取一个基准元素,将数组划分为两个子数组,分别对子数组进行排序,最终实现整个数组的有序排列。快速排序的时间复杂度最好为O(nlogn),最坏为O(n^2),…

Jupyter Notebook 7重磅发布,新增多个特性!

本文分享Jupyter Notebook大版本v7.0.0更新亮点,及简单测试! 近日,Jupyter Notebook大版本v7.0.0更新,Jupyter Notebook 7基于JupyterLab,因此它包含了过去几年JupyterLab中添加的许多新功能和改进,部分亮…