自動(dòng)化一直是測(cè)試圈中的熱聊,也是大家追求的技術(shù)方向。在測(cè)試中,往往回歸測(cè)試也是測(cè)試人員的“痛點(diǎn)”。對(duì)于迭代慢、變更少的功能,就能用上自動(dòng)化來替代人工回歸,減輕工作量。
問題
在分享環(huán)境搭建之前,先拋出我的一個(gè)疑問吧。
app啟用時(shí),分不同的場(chǎng)景:
1.首次安裝啟用,有歡迎頁;
2.非首次啟用,直接進(jìn)入到登錄頁;
3.配置了推薦展示時(shí),啟用app,會(huì)先展示推薦內(nèi)容,才進(jìn)入到登錄頁。
不同場(chǎng)景對(duì)應(yīng)的activity都是不同的,我目前處理辦法是,寫了個(gè)輸入函數(shù),加了個(gè)if判斷去對(duì)應(yīng)不同的activity,總覺得不智能,看此篇的博友們,能否給建議解惑一下。謝謝。
說了這么多,該進(jìn)入正題了。Appium環(huán)境搭建,需要安裝的軟件還是有好幾個(gè),一個(gè)安裝失敗,就可能導(dǎo)致整個(gè)環(huán)境搭建失敗。先羅列下需要用到的軟件,如下:
1 .jdk-8u221- window(下載對(duì)應(yīng)版本) 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一鍵安裝,無需多講,默認(rèn)安裝路徑即可
環(huán)境配置:計(jì)算機(jī)>屬性>高級(jí)屬性>環(huán)境變量
變量名:JAVA_HOME
變量值:D:\Java\jdk1.8.0_73(這里是jdk安裝路徑)
變量名:path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(使得系統(tǒng)可以在任何路徑下識(shí)別java命令)
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(這里需要注意的是.不能漏)Java運(yùn)行環(huán)境加載類的路徑
環(huán)境配置是否成功,輸入javac或者java -version驗(yàn)證,出現(xiàn)如下界面表示成功
?
?
?二、sdk工具類安裝
Android SDK提供開發(fā)測(cè)試所必須的Android API類庫和開發(fā)工具
1.sdk下載
sdk下載地址:https://www.androiddevtools.cn/
我們需要下載的是SDK Tools
?
2.工具類安裝
安裝方式:
將下載的zip包解壓,直接安裝即可。
打開SDK Manager(首次自動(dòng)彈出),按照默認(rèn)勾選安裝亦可。 主要安裝工具Platform-tools、build-tools、Android API(選擇最新版本即可),還有擴(kuò)展插件Google USB Driver,其他根據(jù)實(shí)際情況自行選擇。如下圖:
?
下載安裝時(shí),走的是外網(wǎng),如果覺得下載速度太慢,可以配置國內(nèi)鏡像進(jìn)行加速。
更改鏡像地址Tools -> Options
?
大連東軟信息學(xué)院鏡像服務(wù)器地址: http: // mirrors.neusoft.edu.cn 端口:80 北京化工大學(xué)鏡像服務(wù)器地址: IPv4: http: // ubuntu.buct.edu.cn/ 端口:80 IPv4: http: // ubuntu.buct.cn/ 端口:80 IPv6: http: // ubuntu.buct6.edu.cn/ 端口:80 上海GDG鏡像服務(wù)器地址: http: // sdk.gdgshanghai.com 端口:8000 中國科學(xué)院開源協(xié)會(huì)鏡像站地址: IPV4 /IPV6: http: // mirrors.opencas.cn 端口:80 IPV4/IPV6: http: // mirrors.opencas.org 端口:80 IPV4/IPV6: http: // mirrors.opencas.ac.cn 端口:80
下載過程中,可以去喝杯茶,看看網(wǎng)頁,需要一小會(huì)喲
3.配置環(huán)境變量
喝杯茶的功夫,sdk所需的工具類是下載成功了,接下來就是要配置環(huán)境變量了。
環(huán)境變量配置 1 .ANDROID_HOME:D:\Android\android- sdk 自己實(shí)際安裝路徑 2 . Path 已有變量追加值:
%ANDROID_HOME%\tools;%ADNROID_HOME%\platform-tools;%ADNROID_HOME%\build-tools\ 28.0 . 3 \; 自己具體版本號(hào)
4.驗(yàn)證
使用adb命令驗(yàn)證即可,在dos窗口輸入adb,出現(xiàn)如下截圖,說明安裝成功
?
三、Python安裝
python的安裝方式就略過了,也只是一路下一步即可,無須贅述。
四、Appium
1.什么是Appium
Appium是一個(gè)開源、跨平臺(tái)的測(cè)試框架,可以用來測(cè)試原生及混合的移動(dòng)端應(yīng)用。Appium支持IOS、Android及FirefoxOS平臺(tái)。Appium使用WebDriver的json wire協(xié)議,來驅(qū)動(dòng)Apple系統(tǒng)的UIAutomation庫、Android系統(tǒng)的UIAutomator框架。Appium對(duì)IOS系統(tǒng)的支持得益于Dan Cuellar’s對(duì)于IOS自動(dòng)化的研究。Appium也集成了Selendroid,來支持老android版本。
Appium支持Selenium WebDriver支持的所有語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可以使用Selenium WebDriver的Api。Appium支持任何一種測(cè)試框架。如果只使用Apple的UIAutomation,我們只能用javascript來編寫測(cè)試用例,而且只能用Instruction來運(yùn)行測(cè)試用例。同樣,如果只使用Google的UIAutomation,我們就只能用java來編寫測(cè)試用例。Appium實(shí)現(xiàn)了真正的跨平臺(tái)自動(dòng)化測(cè)試。
2.Appium工作原理
2.1 Android
在Android端,appium基于WebDriver協(xié)議,利用Bootstrap.jar,最后通過調(diào)?用UiAutomator的命令,實(shí)現(xiàn)App的自動(dòng)化測(cè)試。UiAutomator測(cè)試框架是Android SDK自帶的App UI自動(dòng)化測(cè)試Java庫。
另外由于UiAutomator對(duì)H5的支持有限,appium引入了chromedriver以及safaridriver等來實(shí)現(xiàn)基于H5的自動(dòng)化。
appium 在android端工作流如下:
①client端也就是我們的webdriver測(cè)試腳本;
②中間起的是Appium服務(wù),Appium在服務(wù)端起了一個(gè)Server(端口:4723)。跟selenium Webdriver測(cè)試框架類似,Appium?持標(biāo)準(zhǔn)的WebDriver JSONWireProtocol。在這里提供它提供了一套R(shí)EST的接口,Appium Server接收web driver client標(biāo)準(zhǔn)rest請(qǐng)求,解析請(qǐng)求內(nèi)容,調(diào)?對(duì)應(yīng)的框架響應(yīng)操作;
③appium server會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給中間件Bootstrap.jar ,它是用java寫的,安裝在手機(jī)上.Bootstrap監(jiān)聽4724端口并接收appium 的命令,最終通過調(diào)?用UiAutomator的命令來實(shí)現(xiàn);
④Bootstrap將執(zhí)行的結(jié)果返回給appium server;
⑤appium server最后將結(jié)果返回給 appium client。
2.2 IOS
在IOS端,appium同樣使?WebDriver的一套協(xié)議。與Android端測(cè)試框架不同的是,appium ios封裝了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的?自動(dòng)化測(cè)試框架),然后在設(shè)備中注?入bootstrap.js進(jìn)?行監(jiān)聽。
appium 在ios端工作流如下:
①client端依然是我們的webdriver測(cè)試腳本;
②中間起的是Appium服務(wù),Appium在服務(wù)端起了一個(gè)Server(端口:4723)。跟selenium Webdriver測(cè)試框架類似,Appium?持標(biāo)準(zhǔn)的WebDriver JSONWireProtocol。在這里提供它提供了一套R(shí)EST的接口,Appium Server接收web driver client標(biāo)準(zhǔn)rest請(qǐng)求,解析請(qǐng)求內(nèi)容,調(diào)?對(duì)應(yīng)的框架響應(yīng)操作;
③appium server調(diào)用instruments.js 啟動(dòng)一個(gè)socket server,同時(shí)分出一個(gè)子進(jìn)程運(yùn)?instruments.app,將bootstrap.js(一個(gè)UIAutomation腳本)注入到device?于和外界進(jìn)行交互;
④Bootstrap.js將執(zhí)行的結(jié)果返回給appium server;
⑤appium server最后將結(jié)果返回給 appium client。
所以我們可以看到android與ios區(qū)別在于appium 將請(qǐng)求轉(zhuǎn)發(fā)到bootstrap.js或者bootstrap.jar,然后由bootstrap 驅(qū)動(dòng)UIAutomation和UiAutomator去devices上完成具體的動(dòng)作。
更多詳細(xì)可參見這篇博文:https://www.cnblogs.com/sophia194910/p/7515165.html
3.Appium安裝
Appium下載地址:https://bitbucket.org/appium/appium.app/downloads/
?
將下載的zip包解壓后安裝,安裝很簡單,按提示操作即可。
配置環(huán)境變量
path環(huán)境變量:追加環(huán)境變量?C:\Program Files (x86)\Appium\node_modules\.bin;? ?具體安裝路徑
驗(yàn)證
輸入命令appium-doctor查看,出現(xiàn)如下截圖,說明安裝成功
?
五、Node.js
配置Appium的環(huán)境,必須要有Node.js(Appium就是由Node.js編寫的),所以需要對(duì)Node.js進(jìn)行安裝和配置環(huán)境。
下載地址:http://nodejs.cn/download/
下載對(duì)應(yīng)的版本,如下所示
?
下載安裝包后,雙擊安裝,具體步驟忽略了,很簡單。
配置環(huán)境變量
加path環(huán)境變量:C:\Program Files\nodejs\ node安裝路徑
驗(yàn)證
通過命令node -v查看node版本,出現(xiàn)如下截圖,說明安裝成功
?
六、Appium-python-Client
1.什么是Appium-python-Client
Appium的實(shí)用方法都在Client的源碼里,對(duì)于driver和webelement實(shí)例,均有對(duì)應(yīng)的元素查找方法(webelement查找的是下面的子元素),有些兒專門針對(duì)手機(jī)的函數(shù),則需要在這個(gè)Client安裝后方可使用。
Appium為了實(shí)現(xiàn)自己的find查找方式,首先自定義了一個(gè)MobileBy類,給這個(gè)類對(duì)象塞入了它定義的一些擴(kuò)展屬性,這些屬性的值會(huì)通過webdriver協(xié)議推送到server端去識(shí)別和執(zhí)行,為了讓這些屬性運(yùn)用到find方法中,appium很好地繼承和擴(kuò)展了webdriver.Remote,然后通過調(diào)用driver實(shí)例的find_element和find_elements兩個(gè)核心方法實(shí)現(xiàn)元素查找。所以,既然是擴(kuò)展,appiumdriver實(shí)例可以使用seleniumdriver的所有關(guān)于元素查找的實(shí)例方法。
2.安裝Appium-python-Client
使得appium和python建立連接關(guān)系,使用命令:pip install Appium-Python-Client,出現(xiàn)如下截圖,則說明安裝成功。
?
七、Pycharm
工具安裝也忽略了,安裝很簡單的。
?
經(jīng)過如上七個(gè)步驟的操作,基于Python的Appium環(huán)境搭建就成功了。雖說成功了,但也僅僅是個(gè)開端而已,想要做好自動(dòng)化,還是需要靜下心來,研習(xí)一番。今天的環(huán)境搭建就介紹到這了,下次帶來genymotion及腳本的分享。有描述錯(cuò)誤的地方,歡迎批評(píng)指正。
?
本文僅代表作者觀點(diǎn),系作者@溫一壺清酒發(fā)表。
歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
文章出處:http://www.cnblogs.com/hong-fithing/
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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