自動化一直是測試圈中的熱聊,也是大家追求的技術方向。在測試中,往往回歸測試也是測試人員的“痛點”。對于迭代慢、變更少的功能,就能用上自動化來替代人工回歸,減輕工作量。
問題
在分享環境搭建之前,先拋出我的一個疑問吧。
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/
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
