前言:本篇文章并非我的原創(chuàng)礼搁,而是翻譯自英文原著钓猬。這里的每一句話我都仔細(xì)揣摩過(guò)并且加以實(shí)踐普舆,著實(shí)花了一些時(shí)間誊锭,在此記錄只是想幫助更多的人表悬。以下為正文:
Appium Desktop是一款用于Mac、Windows和Linux的開源應(yīng)用丧靡,它提供了Appium自動(dòng)化服務(wù)器在一個(gè)漂亮靈活的UI中的強(qiáng)大功能蟆沫。它是一些與appium相關(guān)的工具的組合:
1、Appium服務(wù)器的圖形界面温治。您可以設(shè)置選項(xiàng)饭庞、啟動(dòng)/停止服務(wù)器、查看日志等…您也不需要使用Node / NPM安裝Appium熬荆,因?yàn)楣?jié)點(diǎn)運(yùn)行時(shí)將與Appium Desktop綁定舟山。
2、您可以使用Inspector來(lái)查看應(yīng)用程序的元素卤恳,了解它們的基本信息累盗,并與它們進(jìn)行基本的交互。這是一種學(xué)習(xí)Appium的方法突琳,或者是了解你的應(yīng)用程序的一種方法若债,這樣你就可以為它編寫測(cè)試用例了。
Download Appium Desktop
你總是可以在GitHub上的發(fā)布頁(yè)面上找到最新版本:https://github.com/appium/appium-desktop/releases拆融。
如果你在Windows或macOS上蠢琳,Appium Desktop將自動(dòng)為你提供最新版本的應(yīng)用程序。如果你遇到問(wèn)題更新镜豹,只需刪除或卸載應(yīng)用程序挪凑,并從上面的鏈接重新下載。
注意逛艰,Appium Desktop與Appium不一樣躏碳。Appium Desktop是一個(gè)圖形界面,使用附加的工具。Appium Desktop是在自己的cadence上發(fā)布的菇绵,它有自己的版本控制系統(tǒng)肄渗。如果你報(bào)告的是Appium Desktop的問(wèn)題,一定要包括Appium Desktop的版本和使用的Appium服務(wù)器的版本(見(jiàn)下文)咬最。
如果你在macOS上翎嫡,你需要安裝Appium Desktop,從下載的DMG文件拷貝到你自己的文件系統(tǒng)(最好的地方是“應(yīng)用程序”文件夾)永乌。在附加的DMG本身上運(yùn)行Appium不受支持惑申,也不會(huì)起作用。
使用說(shuō)明
這些說(shuō)明假定您已經(jīng)熟悉Appium和Appium相關(guān)的概念翅雏。如果您對(duì)Appium所知甚少圈驼,請(qǐng)?jiān)L問(wèn)appium.io/,閱讀介紹性材料望几。
這個(gè)App提供了一個(gè)方便的方法下載和運(yùn)行Appium自動(dòng)化服務(wù)器绩脆,以及一個(gè)檢查你的Android或iOS應(yīng)用程序的工具。它的各種功能在以下小節(jié)中描述橄抹。
服務(wù)器啟動(dòng)窗口
開始一個(gè)簡(jiǎn)單的服務(wù)器(Simple)
當(dāng)您打開Appium Desktop時(shí)靴迫,您會(huì)受到服務(wù)器啟動(dòng)窗口的歡迎÷ナ模基本選項(xiàng)是啟動(dòng)一個(gè)帶有所有默認(rèn)值的Appium服務(wù)器玉锌,以及修改主機(jī)和端口的能力。start按鈕還將讓您知道您正在運(yùn)行的Appium服務(wù)器的哪個(gè)版本疟羹,當(dāng)向Appium團(tuán)隊(duì)報(bào)告問(wèn)題時(shí)芬沉,它是有用的。
使用“高級(jí)選項(xiàng)”啟動(dòng)服務(wù)器(Advance)
服務(wù)器預(yù)設(shè)(Presets)
如果您使用高級(jí)服務(wù)器選項(xiàng)黄刚,您就可以保存配置以備以后使用。只需將preset保存在“Advanced”選項(xiàng)卡上民效,然后您將能夠在“preset”選項(xiàng)卡中回憶并啟動(dòng)服務(wù)器憔维。
服務(wù)器控制臺(tái)輸出窗口
(如果你通過(guò)上面所說(shuō)的方式)啟動(dòng)服務(wù)器后,它將在指定的主機(jī)和端口上啟動(dòng)畏邢,并打開顯示服務(wù)器日志輸出的新窗口业扒。
這是相當(dāng)簡(jiǎn)單的,除了使用按鈕來(lái)停止服務(wù)器之外舒萎,沒(méi)有任何實(shí)際的交互程储。您還可以從這個(gè)窗口復(fù)制并粘貼日志,這在報(bào)告Appium問(wèn)題時(shí)非常有用。
另一個(gè)按鈕可用:“啟動(dòng)新會(huì)話”章鲤。單擊它將打開新的會(huì)話窗口摊灭,使您可以在當(dāng)前運(yùn)行的服務(wù)器上啟動(dòng)一個(gè)檢查器會(huì)話。
新會(huì)話窗口(Start New Session )
新的會(huì)話窗口允許您構(gòu)造一組desired capabilities败徊,用于啟動(dòng)Appium會(huì)話帚呼。您可以針對(duì)當(dāng)前運(yùn)行的Appium Desktop服務(wù)器(默認(rèn)的)啟動(dòng)一個(gè)會(huì)話,或者您可以針對(duì)各種其他端點(diǎn)啟動(dòng)一個(gè)會(huì)話皱蹦。
由于不需要使用Appium Desktop自己的服務(wù)器煤杀,您可以在不啟動(dòng)Appium Desktop服務(wù)器的情況下進(jìn)入新的會(huì)話窗口。只需點(diǎn)擊“File”(Windows / Linux)或“Appium”(Mac)沪哺,然后選擇“New Session…”沈自,它將打開新的會(huì)話窗口,而不必啟動(dòng)本地服務(wù)器凤粗。在這種情況下,將禁用附加到本地服務(wù)器今豆。
Appium端點(diǎn)(Appium Endpoints)
以下是針對(duì)非本地Appium服務(wù)器啟動(dòng)會(huì)話的選項(xiàng):
自定義主機(jī)/端口配置:如果您想要在您的網(wǎng)絡(luò)中的另一臺(tái)機(jī)器上運(yùn)行一個(gè)Appium服務(wù)器嫌拣,這是非常有用的。
Sauce實(shí)驗(yàn)室:如果你無(wú)法訪問(wèn)你的機(jī)器上的iOS模擬器呆躲,你可以利用你的Sauce實(shí)驗(yàn)室?guī)粼谠浦袉?dòng)一個(gè)Appium會(huì)話异逐。
TestObject:您還可以使用TestObject的真實(shí)設(shè)備云來(lái)進(jìn)行真正的基于設(shè)備的檢查。
要設(shè)置這些選項(xiàng)插掂,應(yīng)該很簡(jiǎn)單灰瞻。只需在輸入字段中輸入您的詳細(xì)信息。
所需的功能(Desired Capabilities)
Desired capabilities是如何配置Appium會(huì)話辅甥。他們告訴Appium服務(wù)器你想要自動(dòng)化的平臺(tái)和應(yīng)用程序酝润。如果您不熟悉Desired capabilities的概念,或者需要具備各種類型的Appium會(huì)話Desired capabilities璃弄,您應(yīng)該咨詢Appium文檔要销。
Appium Desktop不限制您以任何方式創(chuàng)建desired capabilities,也不會(huì)為您驗(yàn)證它們夏块。它只是提供了一個(gè)很好的UI來(lái)輸入它們疏咐,并保存它們供以后使用。在“desired capabilities”選項(xiàng)卡下脐供,您可以使用表單字段和“+”按鈕來(lái)輸入許多你需要的desired capabilities浑塞。您還將看到產(chǎn)生的JSON的表示,這是實(shí)際發(fā)送給Appium服務(wù)器的內(nèi)容政己。這對(duì)于驗(yàn)證您的capabilities酌壕,或者在報(bào)告問(wèn)題時(shí)進(jìn)行復(fù)制粘貼非常有用。
一旦您設(shè)置了desired capabilities,您可能希望保存它們仅孩,以便以后可以運(yùn)行相同類型的會(huì)話托猩。只需單擊“Save As...”“給你的capability設(shè)定一個(gè)名字的按鈕×赡剑”然后您可以在“Saved Capability Sets”選項(xiàng)卡下訪問(wèn)它京腥,以便以后編輯或會(huì)話啟動(dòng)。
設(shè)置好服務(wù)器type和capabilities后溅蛉,單擊“Start Session”啟動(dòng)Appium Desktop Inspector(Appium Desktop檢查器)公浪。
附加到一個(gè)現(xiàn)有的會(huì)話(Attach to an Existing Session)
如果你點(diǎn)擊“Attach to Session...”選項(xiàng)卡,您可以從當(dāng)前正在運(yùn)行的會(huì)話列表中選擇一個(gè)當(dāng)前會(huì)話船侧,或者您可以輸入一個(gè)當(dāng)前運(yùn)行會(huì)話的會(huì)話ID欠气。該會(huì)話應(yīng)該在上述服務(wù)器類型部分中指定的服務(wù)器細(xì)節(jié)上運(yùn)行。附加到現(xiàn)有會(huì)話是可能的镜撩,因?yàn)闄z查器只是一個(gè)Appium客戶端预柒。如果您想調(diào)試正在運(yùn)行的測(cè)試的中間,這將非常有用袁梗。當(dāng)您退出現(xiàn)有會(huì)話的Inspector窗口時(shí)宜鸯,Appium Desktop不會(huì)像往常一樣退出會(huì)話。
The Inspector
?Inspector是應(yīng)用程序狀態(tài)的可視化表示遮怜,以及通過(guò)Appium在應(yīng)用程序中執(zhí)行某些交互的能力淋袖。
Appium會(huì)話可能需要一些時(shí)間來(lái)加載,尤其是在云服務(wù)上锯梁,所以請(qǐng)耐心等待即碗。當(dāng)會(huì)話加載時(shí),您的應(yīng)用程序的屏幕截圖將出現(xiàn)在左邊陌凳。您可以在應(yīng)用程序中使用鼠標(biāo)來(lái)處理各種UI元素剥懒,并看到它們突出顯示。
在Inspector窗口的中間是您的應(yīng)用程序的層次結(jié)構(gòu)合敦,表示為XML蕊肥。您可以通過(guò)單擊它,或者通過(guò)點(diǎn)擊屏幕快照視圖中的元素來(lái)導(dǎo)航這棵樹蛤肌。然后他們將被強(qiáng)調(diào)壁却。
當(dāng)一個(gè)元素被突出顯示時(shí),它的信息會(huì)出現(xiàn)在檢查器右側(cè)的細(xì)節(jié)視圖中裸准。這個(gè)細(xì)節(jié)視圖包括對(duì)元素的潛在操作展东,以及元素屬性的表。這些屬性在決定如何使用特定的Appium定位策略訪問(wèn)元素時(shí)是有價(jià)值的炒俱。選擇一個(gè)元素盐肃,您還可以“Tap”元素爪膊,或者“發(fā)送鍵”到元素(如果它是一個(gè)文本字段)。
當(dāng)您使用一個(gè)元素執(zhí)行這樣的操作時(shí)砸王,檢查器將發(fā)送命令到Appium推盛,它將執(zhí)行它。如果操作成功谦铃,將生成一個(gè)新的屏幕截圖耘成,您將看到應(yīng)用程序的更新?tīng)顟B(tài)和XML。如果不成功驹闰,您將有機(jī)會(huì)看到錯(cuò)誤消息瘪菌。
檢查器窗口的頂部包含一個(gè)小工具欄,上面有代表在檢查器中采取某些動(dòng)作的能力的圖標(biāo):
(調(diào)用driver.back)
刷新(刷新源和屏幕截圖)
開始錄音(打開錄音機(jī)嘹朗,查看下一節(jié)师妙,了解更多關(guān)于錄音機(jī)的信息)
退出會(huì)話(調(diào)用驅(qū)動(dòng)程序)。退出并關(guān)閉檢查器(Inspector))
記錄器(The Recorder)
Appium Desktop有一個(gè)非骋倥啵基本的動(dòng)作記錄器默穴,它監(jiān)視使用Appium Desktop的操作,并顯示特定于語(yǔ)言和框架的代碼褪秀,這些代碼代表這些動(dòng)作蓄诽。然后,代碼可以復(fù)制粘貼到適當(dāng)?shù)腁ppium客戶機(jī)代碼中溜歪,并用于測(cè)試若专。
NB:記錄器的目標(biāo)不是產(chǎn)生生產(chǎn)就緒的測(cè)試代碼许蓖。它被設(shè)計(jì)為幫助探索Appium API的工具蝴猪,并演示特定語(yǔ)言和Appium庫(kù)中特定的自動(dòng)化行為如何與方法調(diào)用相對(duì)應(yīng)〔沧Γ總之自阱,它是一個(gè)學(xué)習(xí)工具,而不是一個(gè)健壯的代碼生成特性米酬,應(yīng)該這樣使用沛豌。
當(dāng)您開始記錄時(shí),Inspector(檢查器)將顯示一個(gè)額外的窗口:
起初赃额,記錄器沒(méi)有顯示任何代碼加派。首先需要采取一些行動(dòng),比如在層次結(jié)構(gòu)中找到一個(gè)元素跳芳,然后點(diǎn)擊它芍锦,或者向它發(fā)送擊鍵。當(dāng)你這樣做的時(shí)候飞盆,代碼會(huì)出現(xiàn)在記錄窗口中娄琉,對(duì)應(yīng)于你所選擇的特定語(yǔ)言和框架(可以在錄音機(jī)的右上角的下拉菜單中調(diào)整):
可以使用記錄器窗格右上方的適當(dāng)按鈕將此代碼復(fù)制到剪貼板次乓。注意,默認(rèn)情況下孽水,所顯示的只是與您在記錄時(shí)所采取的特定操作相對(duì)應(yīng)的代碼行——一般情況下票腰,您不能將這些行粘貼到一個(gè)空文本文件中并運(yùn)行代碼。要在代碼中運(yùn)行Appium測(cè)試腳本女气,需要安裝各種依賴關(guān)系(如Appium客戶程序庫(kù))杏慰,以及腳本樣板文件(如實(shí)例化一個(gè)驅(qū)動(dòng)程序和初始化會(huì)話)。要顯示此額外的代碼主卫,您可以單擊“show Boilerplate”按鈕逃默。通過(guò)顯示的樣板代碼,可以將代碼復(fù)制并粘貼到新文件中并運(yùn)行它簇搅。
隨著我們向Appium桌面添加更多的語(yǔ)言完域、框架和操作,記錄器的力量將繼續(xù)增長(zhǎng)瘩将。
Conclusion
這是你成功使用Appium Desktop所需要知道的所有知識(shí)!記住吟税,Appium Desktop并不是理解Appium本身的替代品——它只是一個(gè)方便的工具,可以在你的桌面上使用Appium姿现,以及一個(gè)檢查你應(yīng)用程序的檢查器肠仪。
Reporting Issues and Requesting Features
Appium Desktop是開源的,我們使用GitHub來(lái)跟蹤問(wèn)題备典。請(qǐng)簡(jiǎn)單地在我們的問(wèn)題跟蹤器報(bào)告問(wèn)題异旧。我們將努力確定您所報(bào)告的問(wèn)題是否與Appium Desktop或Appium服務(wù)器有關(guān)。如果它與Appium Desktop無(wú)關(guān)提佣,我們將關(guān)閉這個(gè)問(wèn)題吮蛹,并要求您在Appium的主要問(wèn)題跟蹤器中打開一個(gè)通用的Appium問(wèn)題。請(qǐng)注意拌屏,在你所經(jīng)歷的問(wèn)題是否與Appium Desktop有關(guān)潮针,或者是一個(gè)一般性的Appium問(wèn)題的時(shí)候,可以節(jié)省自己和我們的寶貴時(shí)間倚喂。您可以通過(guò)查看這個(gè)問(wèn)題是否與Appium命令行服務(wù)器進(jìn)行重新生成每篷。如果是的話,直接向Appium的問(wèn)題追蹤報(bào)告端圈。
有特性請(qǐng)求嗎?遵循相同的過(guò)程焦读,向適當(dāng)?shù)母櫰魈峤灰粋€(gè)問(wèn)題!(如果這個(gè)請(qǐng)求是專門用于Appium Desktop的,或者Appium的主跟蹤程序舱权,如果請(qǐng)求是更一般的應(yīng)用程序矗晃,則在這個(gè)repo中。)
Advanced Topics and Troubleshooting
Appium can't detect environment variables on Mac
Appium使用像ANDROID_HOME這樣的環(huán)境變量刑巧,并依賴于路徑中的各種二進(jìn)制文件等等喧兄。當(dāng)您在一個(gè)環(huán)境中從命令行運(yùn)行時(shí)无畔,您已經(jīng)適當(dāng)?shù)卦O(shè)置了這些變量,Appium在選擇它們時(shí)沒(méi)有任何問(wèn)題吠冤。然而浑彰,Appium Desktop不會(huì)在shell或命令行環(huán)境中運(yùn)行,因此默認(rèn)情況下拯辙,它無(wú)法訪問(wèn)您在shell啟動(dòng)腳本或概要文件中設(shè)置的環(huán)境變量郭变。為了解決這個(gè)問(wèn)題,我們使用shell - env包來(lái)獲取shell中定義的環(huán)境變量涯保。這個(gè)包只在某些常見(jiàn)的init腳本中查找诉濒,但是,比如~ /.bashrc,(~ /.bash_profile夕春、~ / . zshrc未荒。如果您以其他方式設(shè)置Appium環(huán)境變量,則需要?jiǎng)?chuàng)建這些默認(rèn)的init腳本中的一個(gè)及志,并將環(huán)境變量設(shè)置在那里片排,以便Appium Desktop能夠成功地將它們提取出來(lái)。
關(guān)于在只讀文件系統(tǒng)上的警告
這可能意味著您試圖從下載的磁盤映像中啟動(dòng)Appium Desktop(.dmg文件)速侈。這不是運(yùn)行Appium Desktop的支持模式率寡。要正確安裝Appium Desktop,將應(yīng)用程序從磁盤映像復(fù)制到您的本地文件系統(tǒng)倚搬,到類似/應(yīng)用程序冶共。然后,從新的位置運(yùn)行應(yīng)用程序每界。
文章來(lái)自github:github.com/appium/appium-desktop