簡(jiǎn)介
前邊介紹的都是通過按鈕點(diǎn)擊啟動(dòng)按鈕來啟動(dòng)appium服務(wù),有的小伙伴或者童鞋們乍一聽可能不信,或者會(huì)問如何通過命令行啟動(dòng)appium服務(wù)呢?且聽宏哥一一道來。
一睹為快
其實(shí)相當(dāng)?shù)暮?jiǎn)單,不看不知道,一看嚇一跳,直接在docs命令窗口輸入命令:appium 就可以運(yùn)行起appium
這回小伙伴和童鞋們相信了吧,都啟動(dòng)來了。
第一行:歡迎使用Appium,版本 v1.8.1
第二行:Appium啟動(dòng)成功,啟動(dòng)ip為默認(rèn)的 0.0.0.0,端口為默認(rèn)的 4723;默認(rèn)即表示“不指定”的情況下;
默認(rèn)端口4723。此時(shí)小伙伴或者童鞋們又會(huì)問,那么如何修改端口了,不要急,聽宏哥慢慢地道來。
修改appium啟動(dòng)端口
appium啟動(dòng)默認(rèn)端口4723,如果要指定端口,通過以下命令:appium -p 端口號(hào),例圖修改端口4725
2個(gè)端口
指定端口的設(shè)備,輸入命令:appium -p 端口1 -bp 端口2 設(shè)備編號(hào)
appium -a 127.0.0.1 -p 4723 --session-override
-a?是指定監(jiān)聽的ip(也可寫成?--address),后面“127.0.0.1”可以改為你需要的ip地址;
-p?是指定監(jiān)聽的端口(也可寫成 --port),也可以修改為你需要的端口;
--session-override?是指覆蓋之前的session;
appium -a 127.0.0.1 -p 4727 -bp 4728 --chromedriver-port 9519 -U xiaomi --session-override
-bp?是連接Android設(shè)備bootstrap的端口號(hào),默認(rèn)是4724(也可寫成--bootstrap-port)
--chromedriver-port?是chromedriver運(yùn)行需要指定的端口號(hào),默認(rèn)是9515
-U?是連接的設(shè)備名稱,如"adb devices"獲取的設(shè)備標(biāo)識(shí)(也可寫成--udid)
服務(wù)器標(biāo)志
所有的標(biāo)志都是可選的,但是有一些標(biāo)志需要組合在一起才能生效。
標(biāo)志 | 默認(rèn)值 | 描述 | 例子 |
---|---|---|---|
--shell
|
null | 進(jìn)入 REPL 模式 | ? |
--localizable-strings-dir
|
en.lproj | IOS only: 定位 .strings所在目錄的相對(duì)路徑 |
--localizable-strings-dir en.lproj
|
--app
|
null |
iOS: 基于模擬器編譯的 app 的絕對(duì)路徑或者設(shè)備目標(biāo)的 bundle_id; Android: apk 文件的絕對(duì)路徑
--app /abs/path/to/my.app
|
? |
--ipa
|
null | (IOS-only) .ipa 文件的絕對(duì)路徑 |
--ipa /abs/path/to/my.ipa
|
-U
,?
--udid
|
null | 連接物理設(shè)備的唯一設(shè)備標(biāo)識(shí)符 |
--udid 1adsf-sdfas-asdf-123sdf
|
-a
,?
--address
|
0.0.0.0 | 監(jiān)聽的 ip 地址 |
--address 0.0.0.0
|
-p
,?
--port
|
4723 | 監(jiān)聽的端口 |
--port 4723
|
-ca
,?
--callback-address
|
null | 回調(diào)IP地址 (默認(rèn): 相同的IP地址) |
--callback-address 127.0.0.1
|
-cp
,?
--callback-port
|
null | 回調(diào)端口號(hào) (默認(rèn): 相同的端口號(hào)) |
--callback-port 4723
|
-bp
,?
--bootstrap-port
|
4724 | (Android-only) 連接設(shè)備的端口號(hào) |
--bootstrap-port 4724
|
-k
,?
--keep-artifacts
|
false | 棄用,無效。trace信息現(xiàn)在保留tmp目錄下,每次運(yùn)行前會(huì)清除該目錄中的信息。 也可以參考 –trace-dir 。 | ? |
-r
,?
--backend-retries
|
3 | (iOS-only) 遇到 crash 或者 超時(shí),Instrument 重新啟動(dòng)的次數(shù)。 |
--backend-retries 3
|
--session-override
|
false | 允許 session 被覆蓋 (沖突的話) | ? |
--full-reset
|
false | (iOS) 刪除整個(gè)模擬器目錄。 (Android) 通過卸載應(yīng)用(而不是清除數(shù)據(jù))重置應(yīng)用狀態(tài)。在 Android 上,session 完成后也會(huì)刪除應(yīng)用。 | ? |
--no-reset
|
false | session 之間不重置應(yīng)用狀態(tài) (iOS: 不刪除應(yīng)用的 plist 文件; Android: 在創(chuàng)建一個(gè)新的 session 前不刪除應(yīng)用。) | ? |
-l
,?
--pre-launch
|
false | 在第一個(gè) session 前,預(yù)啟動(dòng)應(yīng)用 (iOS 需要 –app 參數(shù),Android 需要 –app-pkg 和 –app-activity) | ? |
-lt
,?
--launch-timeout
|
90000 | (iOS-only) 等待 Instruments 啟動(dòng)的時(shí)間 | ? |
-g
,?
--log
|
null | 將日志輸出到指定文件 |
--log /path/to/appium.log
|
--log-level
|
debug | 日志級(jí)別; 默認(rèn) (console[:file]): debug[:debug] |
--log-level debug
|
--log-timestamp
|
false | 在終端輸出里顯示時(shí)間戳 | ? |
--local-timezone
|
false | 使用本地時(shí)間戳 | ? |
--log-no-colors
|
false | 不在終端輸出中顯示顏色 | ? |
-G
,?
--webhook
|
null | 同時(shí)發(fā)送日志到 HTTP 監(jiān)聽器 |
--webhook localhost:9876
|
--native-instruments-lib
|
false | (IOS-only) iOS 內(nèi)建了一個(gè)怪異的不可能避免的延遲。我們?cè)?Appium 里修復(fù)了它。如果你想用原來的,你可以使用這個(gè)參數(shù)。 | ? |
--app-pkg
|
null | (Android-only) 你要運(yùn)行的apk的java包。 (例如, com.example.android.myApp) |
--app-pkg com.example.android.myApp
|
--app-activity
|
null | (Android-only) 打開應(yīng)用時(shí),啟動(dòng)的 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 的參數(shù) |
--android-coverage com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation
|
--avd
|
null | (Android-only) 要啟動(dòng)的 avd 的名字 | ? |
--avd-args
|
null | (Android-only) 添加額外的參數(shù)給要啟動(dòng)avd |
--avd-args -no-snapshot-load
|
--device-ready-timeout
|
5 | (Android-only) 等待設(shè)備準(zhǔn)備好的時(shí)間,以秒為單位 |
--device-ready-timeout 5
|
--safari
|
false | (IOS-Only) 使用 Safari 應(yīng)用 | ? |
--device-name
|
null | 待使用的移動(dòng)設(shè)備名字 |
--device-name iPhone Retina (4-inch), Android Emulator
|
--platform-name
|
null | 移動(dòng)平臺(tái)的名稱: iOS, Android, or FirefoxOS |
--platform-name iOS
|
--platform-version
|
null | 移動(dòng)平臺(tái)的版本 |
--platform-version 7.1
|
--automation-name
|
null | 自動(dòng)化工具的名稱: Appium or Selendroid |
--automation-name Appium
|
--browser-name
|
null | 移動(dòng)瀏覽器的名稱: Safari or Chrome |
--browser-name Safari
|
--default-device
,?
-dd
|
false | (IOS-Simulator-only) 使用instruments自己?jiǎn)?dòng)的默認(rèn)模擬器 | ? |
--force-iphone
|
false | (IOS-only) 無論應(yīng)用要用什么模擬器,強(qiáng)制使用 iPhone 模擬器 | ? |
--force-ipad
|
false | (IOS-only) 無論應(yīng)用要用什么模擬器,強(qiáng)制使用 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) 初始化請(qǐng)求時(shí),使用 LANDSCAPE (橫屏) 或者 PORTRAIT (豎屏) |
--orientation LANDSCAPE
|
--tracetemplate
|
null | (IOS-only) 指定 Instruments 使用的 tracetemplate 文件 |
--tracetemplate /Users/me/Automation.tracetemplate
|
--show-sim-log
|
false | (IOS-only) 如果設(shè)置了, iOS 模擬器的日志會(huì)寫到終端上來 | ? |
--show-ios-log
|
false | (IOS-only) 如果設(shè)置了, iOS 系統(tǒng)的日志會(huì)寫到終端上來 | ? |
--nodeconfig
|
null | 指定 JSON 格式的配置文件 ,用來在 selenium grid 里注冊(cè) 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運(yùn)行的端口 |
--chromedriver-port 9515
|
--chromedriver-executable
|
null | ChromeDriver 可執(zhí)行文件的完整路徑 | ? |
--use-keystore
|
false | (Android-only) 設(shè)置簽名 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 服務(wù)器的配置信息,然后退出 | ? |
--no-perms-check
|
false | 跳過Appium對(duì)是否可以讀/寫必要文件的檢查 | ? |
--command-timeout
|
60 | 默認(rèn)所有會(huì)話的接收命令超時(shí)時(shí)間 (在超時(shí)時(shí)間內(nèi)沒有接收到新命令,自動(dòng)關(guān)閉會(huì)話)。 會(huì)被新的超時(shí)時(shí)間覆蓋 | ? |
--keep-keychains
|
false | (iOS) 當(dāng) Appium 啟動(dòng)或者關(guān)閉的時(shí)候,是否保留 keychains (Library/Keychains) | ? |
--strict-caps
|
false | 如果所選設(shè)備是appium不承認(rèn)的有效設(shè)備,會(huì)導(dǎo)致會(huì)話失敗 | ? |
--isolate-sim-device
|
false | Xcode 6存在一個(gè)bug,那就是一些平臺(tái)上如果其他模擬器設(shè)備先被刪除時(shí)某個(gè)特定的模擬器只能在沒有任何錯(cuò)誤的情況下被建立。這個(gè)選項(xiàng)導(dǎo)致了Appium不得不刪除除了正在使用設(shè)備以外其他所有的設(shè)備。請(qǐng)注意這是永久性刪除,你可以使用simctl或xcode管理被Appium使用的設(shè)備類別。 | ? |
--tmp
|
null |
可以被Appium用來管理臨時(shí)文件的目錄(絕對(duì)路徑),比如存放需要移動(dòng)的內(nèi)置iOS應(yīng)用程序。 默認(rèn)的變量為?
APPIUM_TMP_DIR
?,在 *nix/Mac 為?
/tmp
?在windows上使用環(huán)境便令?
TEMP
?設(shè)定的目錄。
|
? |
--trace-dir
|
null | 用于保存iOS instruments trace的 appium 目錄,是絕對(duì)路徑, 默認(rèn)為?/appium-instruments | ? |
--intent-action
|
android.intent.action.MAIN | (Android-only) 用于啟動(dòng) activity 的intent action |
--intent-action android.intent.action.MAIN
|
--intent-category
|
android.intent.category.LAUNCHER | (Android-only) 用于啟動(dòng) activity 的intent category |
--intent-category android.intent.category.APP_CONTACTS
|
--intent-flags
|
0x10200000 | (Android-only) 啟動(dòng) activity 的標(biāo)志 |
--intent-flags 0x10200000
|
--intent-args
|
null | (Android-only) 啟動(dòng) activity 時(shí)附帶額外的 intent 參數(shù) |
--intent-args 0x10200000
|
--suppress-adb-kill-server
|
false | (Android-only) 如果被設(shè)定,阻止Appium殺掉adb實(shí)例。 |
實(shí)戰(zhàn)
- -a : 默認(rèn)服務(wù)地址 127.0.0.1
- -p: 端口號(hào) 4730 (默認(rèn)4723)
- -U: udid ,android的udid就是adb devices查看到的前面那一串
- --no-reset 不重置app 與desired_caps配置里面的 {"noReset": True,} 一個(gè)意思
cmd進(jìn)入docs命令窗口輸入:
appium -a 127.0 . 0.1 -p 4730 -U emulator- 5554 --no-reset
小結(jié)
?1.遇到的問題就是輸入appium報(bào)錯(cuò)了,懵逼了,怎么辦,不急一步一步解決它。
這個(gè)問題是由于安裝的Node的版本太高,而你安裝的appium版本較低造成,那么解決辦法,就是要么將Node的版本降低,要么將appium版本升高即可。反正宏哥是這么解決了,如果你遇到了如果你遇到了,可以試一試宏哥的方法,但是不能打包票哈。
2.好了,時(shí)間不早了,關(guān)于appium的服務(wù)命令行就到這里吧!早點(diǎn)休息吧!
您的肯定就是我進(jìn)步的動(dòng)力。 如果你感覺還不錯(cuò),就請(qǐng)鼓勵(lì)一下吧!記得點(diǎn)波? 推薦 ?哦!!!(點(diǎn)擊右邊的小球即可!(^__^)?嘻嘻……)
?
? ? ? ?個(gè)人公眾號(hào)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 微信群 ?(微信群已滿100,可以加宏哥的微信拉你進(jìn)群,請(qǐng)備注:進(jìn)群)? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
