appium記錄總結

來源:互聯網
上載者:User

標籤:proxy   代碼   結束   執行順序   基於   源碼包   testng   指令碼調用   連接埠   

1. appium工作原理,生命週期,怎麼執行的
總體來說都是以appium服務端作為中轉站,把測試指令碼的指定傳遞給appium服務端,然後appium服務端再和底層工具進行通訊
底層工具和手機進行通訊操作,操作完成後將結果反饋給appium服務端,服務端再將結果反饋給我們測試指令碼
安卓下:
1. 4.2以上的機型用底層調用的uiautomator(AppiumBootStrap.jar)這個測試載入器
在測試指令碼與appium服務端建立串連的過程中,會將AppiumBootStrap.jar這個包發送到測試裝置上,並且啟動AppiumBootStrap.jar
建立一個socket服務,一直等待服務端傳遞命令,整個執行測試的過程就是和AppiumBootStrap.jar進行通訊完成操作
在執行完測試後測試指令碼調用driver.quit()這個方法,來結束測試,並且結束裝置上AppiumBootStrap.jar

2. 4.2以下的機型底層用的seledroid這個測試載入器
在測試指令碼與appium服務端建立串連過程中,會對原測試應用進行重簽名操作,產生一個seledroid_xxx.apk,並將這個apk安裝到測
試裝置上,以這個apk來操作測試的apk,那麼服務端和seledroid通訊是基於一個http的介面服務的,這個連接埠是8080
3. 混合應用webview部分用的是chromedriver
前提是我們的測試應用源碼包中開啟了webview debug模式
混合應用在切換webview的時候會去啟動一個chromedriver的http服務,這個服務連接埠是9515,appium服務端和chromedriver的服務進
行通訊,chromedriver與我們的apk中webview進行通訊
4. 手機web應用用的chromedriver
前提是基於chrome核心的瀏覽器
測試指令碼與appium服務端建立串連的過程中直接建立一個chromedriver的服務,這個服務連接埠是9515,appium服務端和chromedriver的服務進
行通訊,chromedriver與我們的手機web進行通訊

ios下(xode8以下):
1. 原生app的測試
基於instruments的uiautomation來做的,測試指令碼與服務端進行通訊,服務端將測試指令翻譯成uiautomation指令碼傳遞給instruments,由
instruments和手機測試應用進行通訊,完成操作
2. 混合app的測試
前提是啟動ios_webkit_debug_proxy -c 0e4b2f612b65e98c1d07d22ee08678130d345429:27753 -d 服務
測試指令碼在切換driver的時候,啟動一個chromedriver服務,和應用的webivew進行通訊
3. 手機web的測試
藉助SafariLauncher這個app來完成safari瀏覽器的操作

2. 顯式等待和隱式等待的異同
1. 相同點都是智能等待,在一定時間範圍內不斷尋找元素,一旦找到立刻結束尋找繼續執行代碼,沒找到才會一直找到逾時為止
2. 不同點是隱式等待是全域性裝置,並且可以隨時更改,在更改後對之後的findxxx方法生效,對點擊、輸入、滑動之類的操作不起作用;
顯式等待僅僅針對單一元素生效,並且不僅僅是針對尋找,也可以針對元素的某些屬性進行自訂判斷

3. 多裝置執行
1. 安卓下多裝置執行意味著每一個裝置需要對應一個appium服務端,並且指令碼部分需要實現多線程訪問,appium服務端啟動命令如下:
appium -p 4490 -bp 3456 -U xxxx
-p 表示服務端和指令碼通訊的連接埠
-bp 表示服務端和裝置的AppiumBootStrap.jar進行通訊的連接埠
-U 表示當前服務是針對哪一台裝置的
2. ios在xcode8以下不支援多裝置執行原因是instruments不支援多執行個體

4. testng架構
1. 各個註解的作用以及執行順序和次數
注意註解指定的是設定檔中的標籤,比如beforeTest指的是設定檔中的test標籤執行前要做的初始化操作,其他類似
beforeMethod和AfterMethod表示在每一個Test註解的測試方法執行前後都會被執行的
2. 測試報告,測試日誌及失敗
使用jenkins的testng外掛程式,解析testng自己產生的報告,將失敗放在jenkins所在的tomcat目錄下,可以達到在html報告上看到的效果
reportng報告
testng-xlst的報告
5. 如果要實現安卓和ios同時測試,需要一個mac電腦做服務端

6. 自動化測試的環境
1. 需要一台專職自動化的電腦
2. 如果你的裝置較多,需要集線器,電腦配置要高
3. usb連接線品質要好

appium記錄總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.