Appium python自動化測試系列之Android知識講解(三)

來源:互聯網
上載者:User

標籤:自己的   指定   edit   分享   1.2   gen   keditor   令行   alt   

?3.1 ADB工具講解

 

3.1.1 什麼是ADB呢?

我們不去解釋官方語言的翻譯,給大家說一個通熟易懂的說法,ADB我理解為他就是電腦和手機串連的橋樑。此串連不是充電的串連,大家不要混淆,說他是一個調試工具,可能更貼切。

 

3.1.2 ADB有什麼作用呢?

剛說的他是電腦和手機串連的橋樑,我們可以通過ADB操作手機,可以管理手機。可能你說這裏手機包括模擬器嘛?答案是肯定的。

 

3.1.3 如何使用ADB?

我們在終端直接輸入adb的命令就可以執行相應的操作。在測試過程中我們最常用的就是查看已經串連的android裝置有哪些。大概整理了一下常用的:

1、adb devices 查看已經串連的android裝置

2、adb install Baidu.apk 這個是安裝應用,如果我們當前電腦串連了多台android機器時,使用這個命令是不行的,這個時候我們需要指定裝置:adb -s install baidu.apk,這裡的-s是指裝置的資訊,就是通過adb devices 查看的裝置資訊。

3、adb uninstall Baidu.apk 這個是卸載應用

4、adb connect 127.0.0.1:62001這個命令大家一定要記住,串連指定裝置資訊,這裡的裝置是指虛擬機器,如果說我們使用的虛擬機器不是官方的,是國產的天天、夜遊神等等虛擬機器你需要使用connect 命令串連,這裡的連接埠號碼不一定是6555,這個需要根據你的模擬器的品牌來決定。剛學如果搞不定還是建議用真機,只需要開啟adb調試就好。

3.2 UIAutomatorviewer工具講解

UIAutomatorviewer是一個定位工具,無論是在windows下還是mac下都可以用時,他在你androidsdk目錄下的tools目錄下,我只是按照我的給大家講的,下面給大家配置一張圖片,更加直觀:

可以看一下在我的目錄,在最後的tools目錄下有一個uiautomatorviewer檔案,我們之需要在目前的目錄直接敲擊該目錄命令就會開啟我們的定位工具介面,下面我們直接看我們的:

在這裡需要記住一個問題,因為我用的是國產的模擬器,所以在啟動模擬器後需要adb connect 127.0.0.1:xxxx,但是在這個之前你還是需要將模擬器裡面的開發人員選項開啟的,因為只有建立串連後才能夠使用定位工具,不然會報錯。

我們開啟定位工具、模擬器後直接點擊定位工具左上方紅色圈出的按鈕(擷取當前螢幕)uiautomatorviewer會自動擷取到當前模擬器所開啟的頁面。

最左邊的地區就是捕獲的模擬器頁面,在該頁面滑鼠移到你要尋找的元素上面,在整個地區右面上面就是當前對象的一個布局結構,能夠清晰的看見他是採用的是什麼布局。右下角的地區就是我們需要定位的對象的屬性值。

右下角的屬性我做了一個區分,左邊紅色部分為屬性名稱,右邊的則是屬性值,當我在上邊選擇一個控制項或者對象的時候下面的屬性就會隨著變化,在中的屬性主要是:index、text、resource-id、class、package、content-desc,這些屬性和屬性值他們對應起來就是我們後面要講的頁面元素定位,我們做自動化最主要是和這幾個屬性去互動。這裡需要注意一個問題:這個頁面屬性的text屬性定位方式是針對name定位,但是在新版本appium中已經去掉了name定位,所以大家注意一下這個問題,到時候如果報錯也不要著急。

3.3 Package及Activity講解

在整理這個知識的時候其實很糾結是否要講這個知識點,但是權衡了一下決定還是講解一下,不然後面的章節講自動化時可能對於一些無基礎的讀者會有一些莫名其妙。

什麼是Package呢?中文翻譯過來大家都知道是包的意思,其實沒錯,你如果非得這麼理解也沒錯,只是在我們的app中這個Package是唯一的,就像你社會安全號碼碼一樣。在我們做app自動化時,我們就需要知道他的Package,我們知道了Package那麼也就知道我們需要對哪個app做自動化,現在能理解Package是什麼意思了嗎?

什麼是Activity呢?官方給出的解釋Activity是Android組建中最基本也是最為常見用的四大組件之一。看了這個是不是覺得很懵?so,他還有一種不確切的說法,就是和使用者進行互動的,每當使用者開啟app進行操作的時候會發現在不斷的跳頁面,其實每個頁面就是一個activity。我們做自動化時拿到了這個app的Package,但是我們還不能啟動起來,因為我們沒有告訴需要去操作哪一個Activity,因此在這個時候我們需要講app啟動時的Activity寫入到啟動參數中,如果你傳入一個其他頁面的是不行的。

3.4 package及activity的擷取

前面講了那麼多,但是還不知道怎麼擷取,對吧。哈哈,只知道作用但是不知道來源這個就沒處使盡。

先說一下擷取package和activity的方法,在網上說了有很多種,這裡我只給大家說我們常用的。

1、因為自動化一般都是自己的應用,所以這個肯定是自己公司的,那麼你拿這個還不簡單?直接找開發要就行。

2、appium 有介面的用戶端,這檔你在設定裡面選擇了apk的路徑之後系統會自動將該apk的相關資訊展示在下面,所以很簡單,不過悲催的是他不能夠複製,你寫在程式你的時候還是需要你一個一個字母敲擊

3、通過android sdk工具來,在sdk裡面有一個工具,叫做aapt,我們可以直接通過這個工具來,在命令列輸入:aapt dump badging xxxx.apk,後面這個xxx.apk檔案是我們aok所在的絕對路徑,敲入之後那麼可以顯示出來相關資訊,可以在裡面仔細找了,packageName、lanuchActivity這兩個字端,一個在開始1、2行一個在中間部分。

Appium python自動化測試系列之Android知識講解(三)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.