1. 程式人生 > >基於Python的Appium環境搭建合集

基於Python的Appium環境搭建合集

自動化一直是測試圈中的熱聊,也是大家追求的技術方向。在測試中,往往回歸測試也是測試人員的“痛點”。對於迭代慢、變更少的功能,就能用上自動化來替代人工迴歸,減輕工作量。

問題

在分享環境搭建之前,先丟擲我的一個疑問吧。

app啟用時,分不同的場景:

1.首次安裝啟用,有歡迎頁;

2.非首次啟用,直接進入到登入頁;

3.配置了推薦展示時,啟用app,會先展示推薦內容,才進入到登入頁。

不同場景對應的activity都是不同的,我目前處理辦法是,寫了個輸入函式,加了個if判斷去對應不同的activity,總覺得不智慧,看此篇的博友們,能否給建議解惑一下。謝謝。

說了這麼多,該進入正題了。Appium環境搭建,需要安裝的軟體還是有好幾個,一個安裝失敗,就可能導致整個環境搭建失敗。先羅列下需要用到的軟體,如下:

1.jdk-8u221-window(下載對應版本)

2.Android-sdk_r24.4.1-windows(下載最新版)

3.Python

4.appium

5.Node.js

6.Appium-python-Client

7.pycharm

一、jdk安裝

jdk下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK一鍵安裝,無需多講,預設安裝路徑即可

環境配置:計算機>屬性>高階屬性>環境變數

變數名:JAVA_HOME

變數值:D:\Java\jdk1.8.0_73(這裡是jdk安裝路徑)

變數名:path

變數值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(使得系統可以在任何路徑下識別java命令)

變數名:CLASSPATH

變數值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(這裡需要注意的是.不能漏)Java執行環境載入類的路徑

環境配置是否成功,輸入javac或者java -version驗證,出現如下介面表示成功

 

 

 

 二、sdk工具類安裝

Android SDK提供開發測試所必須的Android API類庫和開發工具

1.sdk下載

sdk下載地址:https://www.androiddevtools.cn/

我們需要下載的是SDK Tools

 

2.工具類安裝

安裝方式:

將下載的zip包解壓,直接安裝即可。

開啟SDK Manager(首次自動彈出),按照預設勾選安裝亦可。 主要安裝工具Platform-tools、build-tools、Android API(選擇最新版本即可),還有擴充套件外掛Google USB Driver,其他根據實際情況自行選擇。如下圖:

 

下載安裝時,走的是外網,如果覺得下載速度太慢,可以配置國內映象進行加速。

更改映象地址Tools -> Options

 

大連東軟資訊學院映象伺服器地址:
http://mirrors.neusoft.edu.cn 埠:80
北京化工大學映象伺服器地址:
IPv4: http://ubuntu.buct.edu.cn/ 埠:80
IPv4: http://ubuntu.buct.cn/ 埠:80
IPv6: http://ubuntu.buct6.edu.cn/ 埠:80
上海GDG映象伺服器地址:
http://sdk.gdgshanghai.com 埠:8000
中國科學院開源協會映象站地址:
IPV4/IPV6: http://mirrors.opencas.cn 埠:80
IPV4/IPV6: http://mirrors.opencas.org 埠:80
IPV4/IPV6: http://mirrors.opencas.ac.cn 埠:80

下載過程中,可以去喝杯茶,看看網頁,需要一小會喲

3.配置環境變數

喝杯茶的功夫,sdk所需的工具類是下載成功了,接下來就是要配置環境變量了。

環境變數配置
1.ANDROID_HOME:D:\Android\android-sdk  自己實際安裝路徑
2.Path已有變數追加值:
%ANDROID_HOME%\tools;%ADNROID_HOME%\platform-tools;%ADNROID_HOME%\build-tools\28.0.3\; 自己具體版本號

4.驗證

使用adb命令驗證即可,在dos視窗輸入adb,出現如下截圖,說明安裝成功

 

 

三、Python安裝

python的安裝方式就略過了,也只是一路下一步即可,無須贅述。

四、Appium

1.什麼是Appium

Appium是一個開源、跨平臺的測試框架,可以用來測試原生及混合的移動端應用。Appium支援IOS、Android及FirefoxOS平臺。Appium使用WebDriver的json wire協議,來驅動Apple系統的UIAutomation庫、Android系統的UIAutomator框架。Appium對IOS系統的支援得益於Dan Cuellar’s對於IOS自動化的研究。Appium也集成了Selendroid,來支援老android版本。

Appium支援Selenium WebDriver支援的所有語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可以使用Selenium WebDriver的Api。Appium支援任何一種測試框架。如果只使用Apple的UIAutomation,我們只能用javascript來編寫測試用例,而且只能用Instruction來執行測試用例。同樣,如果只使用Google的UIAutomation,我們就只能用java來編寫測試用例。Appium實現了真正的跨平臺自動化測試。

2.Appium工作原理

2.1 Android

在Android端,appium基於WebDriver協議,利用Bootstrap.jar,最後通過調⽤用UiAutomator的命令,實現App的自動化測試。UiAutomator測試框架是Android SDK自帶的App UI自動化測試Java庫。

另外由於UiAutomator對H5的支援有限,appium引入了chromedriver以及safaridriver等來實現基於H5的自動化。

appium 在android端工作流如下:

①client端也就是我們的webdriver測試指令碼;

②中間起的是Appium服務,Appium在服務端起了一個Server(埠:4723)。跟selenium Webdriver測試框架類似,Appium⽀持標準的WebDriver JSONWireProtocol。在這裡提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,解析請求內容,調⽤對應的框架響應操作;

③appium server會把請求轉發給中介軟體Bootstrap.jar ,它是用java寫的,安裝在手機上.Bootstrap監聽4724埠並接收appium 的命令,最終通過調⽤用UiAutomator的命令來實現;

④Bootstrap將執行的結果返回給appium server;

⑤appium server最後將結果返回給 appium client。

2.2 IOS

在IOS端,appium同樣使⽤WebDriver的一套協議。與Android端測試框架不同的是,appium ios封裝了apple的 Instruments框架,主要用了Instrument裡的UI Automation(Apple的⾃自動化測試框架),然後在裝置中注⼊入bootstrap.js進⾏行監聽。

appium 在ios端工作流如下:

①client端依然是我們的webdriver測試指令碼;

②中間起的是Appium服務,Appium在服務端起了一個Server(埠:4723)。跟selenium Webdriver測試框架類似,Appium⽀持標準的WebDriver JSONWireProtocol。在這裡提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,解析請求內容,調⽤對應的框架響應操作;

③appium server呼叫instruments.js 啟動一個socket server,同時分出一個子程序運⾏instruments.app,將bootstrap.js(一個UIAutomation指令碼)注入到device⽤於和外界進行互動;

④Bootstrap.js將執行的結果返回給appium server;

⑤appium server最後將結果返回給 appium client。

所以我們可以看到android與ios區別在於appium 將請求轉發到bootstrap.js或者bootstrap.jar,然後由bootstrap 驅動UIAutomation和UiAutomator去devices上完成具體的動作。

更多詳細可參見這篇博文:https://www.cnblogs.com/sophia194910/p/7515165.html

3.Appium安裝

Appium下載地址:https://bitbucket.org/appium/appium.app/downloads/

 

 

將下載的zip包解壓後安裝,安裝很簡單,按提示操作即可。

配置環境變數

path環境變數:追加環境變數 C:\Program Files (x86)\Appium\node_modules\.bin;   具體安裝路徑

驗證

輸入命令appium-doctor檢視,出現如下截圖,說明安裝成功

 

五、Node.js

配置Appium的環境,必須要有Node.js(Appium就是由Node.js編寫的),所以需要對Node.js進行安裝和配置環境。

下載地址:http://nodejs.cn/download/

下載對應的版本,如下所示

 

下載安裝包後,雙擊安裝,具體步驟忽略了,很簡單。

配置環境變數

加path環境變數:C:\Program Files\nodejs\ node安裝路徑

驗證

通過命令node -v檢視node版本,出現如下截圖,說明安裝成功

 

六、Appium-python-Client

1.什麼是Appium-python-Client

Appium的實用方法都在Client的原始碼裡,對於driver和webelement例項,均有對應的元素查詢方法(webelement查詢的是下面的子元素),有些兒專門針對手機的函式,則需要在這個Client安裝後方可使用。

Appium為了實現自己的find查詢方式,首先自定義了一個MobileBy類,給這個類物件塞入了它定義的一些擴充套件屬性,這些屬性的值會通過webdriver協議推送到server端去識別和執行,為了讓這些屬性運用到find方法中,appium很好地繼承和擴充套件了webdriver.Remote,然後通過呼叫driver例項的find_element和find_elements兩個核心方法實現元素查詢。所以,既然是擴充套件,appiumdriver例項可以使用seleniumdriver的所有關於元素查詢的例項方法。

2.安裝Appium-python-Client

使得appium和python建立連線關係,使用命令:pip install Appium-Python-Client,出現如下截圖,則說明安裝成功。

 

七、Pycharm

工具安裝也忽略了,安裝很簡單的。

 

經過如上七個步驟的操作,基於Python的Appium環境搭建就成功了。雖說成功了,但也僅僅是個開端而已,想要做好自動化,還是需要靜下心來,研習一番。今天的環境搭建就介紹到這了,下次帶來genymotion及指令碼的分享。有描述錯誤的地方,歡迎批評指正。

 

本文僅代表作者觀點,系作者@溫一壺清酒發表。
歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
文章出處:http://www.cnblogs.com/hong-fithing/