1. 程式人生 > >App自動化測試-1.App自動化介紹和環境搭建

App自動化測試-1.App自動化介紹和環境搭建

App自動化測試-1.App自動化介紹和環境搭建

App自動化測試-1.App自動化介紹和環境搭建

App自動化工具介紹

當前主流的App自動化工具

作為近幾年興起的測試型別,App自動化測試正在變得越來越流行。
當前主流的App自動化工具有:Appium,Robotium,Espresso,Calabash等。
這裡我們主要講最主流的工具:Appium。

主流App測試工具對比


Appium支援Android和IOS自動化測試。
Appium支援Selenium WebDriver支援的所有語言,java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可以使用Selenium WebDriver的Api。
新手容易入門,但至少要熟悉java等一門語言。

Appium的架構

事實上,Appium主要是通過向Android作業系統中的bootstrap.jar包,通過獲取手機root除錯許可權來操控手機。
在Appium看來,手機可以被看作是一個網站web,Appium伺服器端和手機主要通過session對話來進行通訊。

自動化始終圍繞一個Session(會話)進行。客戶端初始化一個Session 來與服務端互動,不同的語言有不同的實現方式,但是它們最終都是傳送一個POST 請求給服務端,請求中包含一個JSON 物件,其被稱作“Desired Capabilities”。此時,服務端就會開啟一個自動化的 Session,然後返回一個Session ID,Session ID 將會被使用者傳送後續的命令。
Desired Capabilities是一些鍵值對的集合(比如一個 map 或者 hash)。客戶端將這些鍵值對傳送給服務端,告訴服務端我們想要怎樣測試。比如,我們可以把platformName capability 設定為 android,告訴Appium 服務端,我們想要一個android 的session,而不是一個 IOS 的session。
Client/ServerArchitecture Appium server是用node.js寫的,安裝node.js可以直接用npm命令或dmg,server端功能:監聽一個埠,接收client傳送來的command,翻譯這些命令,把這些command轉成移動裝置可以理解的形式傳送給移動裝置,然後移動裝置執行完command後把執行結果返回給appium server,appium再把執行結果返回給client。 Client其實就是發起command的裝置,一般來說就是執行程式碼的機器,執行appium測試程式碼的機器,可以把client理解成程式碼,這些程式碼可以是java、python、ruby、js,只要實現了webdriver標準協議就可以。

環境搭建

安裝Python

建議安裝Python3.6及以上版本
下載地址: https://www.python.org/downloads/windows/
注意在安裝介面選擇下面那個定製安裝,勾選下面那個將安裝路徑加入path環境變數

注意在之後的第二個介面勾選第一個:為所有使用者安裝

下方的安裝路徑將會變成c:\program files(x86)\pythonxx下面
安裝完成之後,在cmd模式下輸入:python,如果可以進入python程式設計環境就說明安裝和配置環境變數成功

安裝JDK

參考我前面java的部落格:1.Java概述、安裝及環境搭建2.3 Java開發環境的搭建,並配置相應的path環境變數:
https://www.cnblogs.com/jeknight/p/6872114.html

安裝Android SDK

下載地址:https://android-sdk.en.softonic.com/
注意安裝路徑中不要有中文,也不要有特殊字元
安裝完成以後用該安裝路徑新增一個環境變數:ANDROID_HOME值為android sdk的解壓位置。
修改path環境變數:增加三個:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.2

完成之後執行安裝目錄下的SDK manager.exe,安裝下列打鉤的包,點選install/update進行安裝。

其它的安裝包,特別是安卓系統映象不用安裝,對於自動化測試來講


安裝node.js

在安裝appium之前必須先裝好node.js。
下載地址:https://nodejs.org/en/download/

注意:32位和64是不同的版本
裝好之後,可以通過:node -v命令來檢視安裝是否成功

安裝Appium

下載地址:https://github.com/appium/appium-desktop/releases/tag/v1.15.1
下載自己對應作業系統的版本,一路next安裝之後,可以看到appium-destop的執行介面。

這裡我們先把appium放在一邊,先準備好我們要連線的裝置。

安裝模擬器

某些時候,我們可能不方便用真機測試,可以先用模擬器在電腦上安裝進行測試。
當然這樣做的侷限性也很大,模擬器和真機的效能以及作業系統版本差異可能很大,所以模擬器並不能替代真機做自動化測試。
這裡推薦使用夜神模擬器,最新版本6.5.0.0基於android5.1.1版本製作。
不是很推薦android sdk自帶的avd模擬器,效能比較慢,卡頓比較嚴重。

連線模擬器或者真機

連線真機

連線真機比較簡單,開啟開發者選項,然後在開發者選項中勾選usb除錯模式,然後資料線連線電腦,手機會彈出是否允許usb除錯,點選確定。

很多手機的開發者選項是隱藏的,所以要先百度自己對應機型的開啟方式,某些手機是在設定->系統->關於手機介面,連擊多次版本號位置可以開啟。
手機通過資料線連線電腦有可能不被識別或者無法adb連線,這時需要去下載自己手機型號對應的usb驅動程式。

如果以上連線和驅動都正常,開啟cmd視窗,輸入:adb devices
如果連線正常,則如下圖:

如果出現這種,裝置顯示為unauthorized,說明手機沒有允許電腦的usb除錯,重新檢查下開發者選項的相應設定。

有些時候adb的版本不統一也會造成無法adb連線的情況,那麼可能需要升級或者降級android sdk裡面的platform-tools。

連線模擬器

連線模擬器稍微麻煩一點,首先執行模擬器:夜神
通過工作管理員->詳細資訊,檢視程序PID,如下圖:

再在cmd模式下輸入:netstat -ano|findstr "夜神的PID"來檢視模擬器佔用埠。
這裡查到通訊的埠是:62001,當然如果你只用夜神模擬器的話,記住這個埠也是可以的。

接下來使用adb工具連線模擬器:adb connect 127.0.0.1:62001

連線之後也可以使用:adb devices檢視當前連線裝置

啟動Appium

保證adb連線上之後,接下來啟動appium,在host中填寫本機地址:127.0.0.1,然後點選start server。

然後一切正常的話,可以看到這個介面。

這樣我們就初步完成了appium自動化測試環境的搭建,還有python的設定這塊放在下一章。

 

&n