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的設置這塊放在下一章。