使用JAVA+Maven+TestNG框架實(shí)現(xiàn)超詳細(xì)Appium測試安卓真機(jī)教程
前言:前段時(shí)間做了selenium的學(xué)習(xí)和實(shí)踐,有點(diǎn)意猶未盡,所以自己就又學(xué)了下Appium的使用,因?yàn)檫@一套東西在16年已經(jīng)停止維護(hù)了,不管實(shí)現(xiàn)還是設(shè)計(jì)上都不是很容易,也踩了很多坑,現(xiàn)在在此記錄下大概過程。后續(xù)有時(shí)間再完善手冊(cè)。
一、準(zhǔn)備
安裝SDK,配置環(huán)境變量
鏈接: https://pan.baidu.com/s/1g2QaWjdfg6Txa0gZf9kk3A
提取碼: 8aaz
windows配置環(huán)境SDK變量
我的電腦右鍵->屬性

點(diǎn)擊高級(jí)系統(tǒng)設(shè)置

點(diǎn)擊環(huán)境變量

點(diǎn)擊新建按鈕,變量名輸入ANDROID_HOME,變量值輸入解壓后的SDK目錄

path變量加入圖中兩個(gè)路徑

打開CMD命令,輸入adb后回車 展示如下內(nèi)容即可

在cmd中輸入android并回車,會(huì)自動(dòng)打開android SDK管理器

下載Appium服務(wù),并啟動(dòng)
鏈接: https://pan.baidu.com/s/1Tf_33ZhbMwBmn0HKL-Z8UQ
提取碼: s5qa
雙擊桌面下載好的Appium.exe程序,啟動(dòng)Appium服務(wù)


出現(xiàn)上圖后說明已啟動(dòng)成功
二、代碼實(shí)現(xiàn)
安裝JDK
官方下載
安裝過程比較簡單,這里就不做詳細(xì)的贅述了。
之后設(shè)置環(huán)境變量JAVA_HOME

編輯Path,添加bin目錄

驗(yàn)證jdk安裝,打開cmd輸入java,回車。出現(xiàn)下面提示后即配置成功

設(shè)置Capability
// 1.添加配置,創(chuàng)建DesiredCapabilities對(duì)象
DesiredCapabilities des = new DesiredCapabilities();
// 指定測試設(shè)備的名稱
des.setCapability("deviceName", Utils.getParam("deviceName"));
// 添加操作系統(tǒng)配置
des.setCapability("platformName", Utils.getParam("platformName"));
// 添加操作系統(tǒng)版本設(shè)置
des.setCapability("platformVersion", OpenApp.getVersion());
// 連接的物理設(shè)備的唯一設(shè)備標(biāo)識(shí)
des.setCapability("udid", OpenApp.getDeviceName());
// 不需要再次安裝
des.setCapability("noReset", Boolean.valueOf(Utils.getParam("noReset")));
// 設(shè)置apk的安裝路徑
des.setCapability("app", apkDir.getAbsolutePath());
//指定想要測試應(yīng)用的包名
des.setCapability("appPackage", Utils.getParam("appPackage"));
// 指定想要測試應(yīng)用的入口
des.setCapability("appActivity", Utils.getParam("appActivity"));
// 支持中文輸入
des.setCapability("unicodeKeyboard", Boolean.valueOf(Utils.getParam("unicodeKeyboard")));
des.setCapability("resetKeyboard", Boolean.valueOf(Utils.getParam("resetKeyboard")));
// 沒有新命令時(shí)的超時(shí)時(shí)間設(shè)置
des.setCapability("newCommandTimeout", Utils.getParam("newCommandTimeout"));
// 跳過檢查和對(duì)應(yīng)用進(jìn)行 debug 簽名的步驟
des.setCapability("nosign", Utils.getParam("nosign"));
//自動(dòng)點(diǎn)擊彈窗如:是否允許讀取文件權(quán)限
des.setCapability("autoGrantPermissions",Boolean.valueOf(Utils.getParam("autoGrantPermissions")));
//安卓版本較新,使用uiautomator2
// des.setCapability("automationName", Utils.getParam("automationName"));
指定appium通訊的地址,將相對(duì)應(yīng)的配置傳入到驅(qū)動(dòng)運(yùn)行testNG.xml文件,執(zhí)行用例(代碼會(huì)先檢查手機(jī)有沒有連接,沒有連接手機(jī)不運(yùn)行,手機(jī)端有沒有安裝要測試的程序,沒有的話先安裝,安裝完成后啟動(dòng)手機(jī)app程序,再執(zhí)行用例),執(zhí)行完成后會(huì)顯示執(zhí)行結(jié)果,也可以設(shè)置失敗截屏,方便我們排查和分析具體失敗原因

看失敗截圖,很顯然現(xiàn)在失敗的原因是因?yàn)榫W(wǎng)絡(luò)原因,ui沒有加載完成,元素未找到

代碼中拋異常的地方也是如此

SDK下載:
鏈接: https://pan.baidu.com/s/1g2QaWjdfg6Txa0gZf9kk3A
提取碼: 8aaz
后面也做了定期執(zhí)行的程序,包括自動(dòng)發(fā)送郵件,省心。因?yàn)閷懙谋容^倉促,格式和內(nèi)容都比較簡陋,小白可以做參考(大佬勿噴?。?/p>
到此這篇關(guān)于使用JAVA+Maven+TestNG框架實(shí)現(xiàn)超詳細(xì)Appium測試安卓真機(jī)教程的文章就介紹到這了,更多相關(guān)JAVA+Maven+TestNG框架實(shí)現(xiàn)Appium測試安卓真機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中@RequiredArgsConstructor注解的基本用法
這篇文章主要介紹了Java中@RequiredArgsConstructor注解的基本用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09
shiro與spring?security用自定義異常處理401錯(cuò)誤
這篇文章主要介紹了shiro與spring?security用自定義異常處理401錯(cuò)誤,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
java捕獲AOP級(jí)別的異常并將其傳遞到Controller層
如何在一個(gè)現(xiàn)代的Java應(yīng)用中,捕獲AOP(面向切面編程)級(jí)別的異常,并將這些異常傳遞到Controller層進(jìn)行合適的處理,異常處理在構(gòu)建可靠的應(yīng)用程序中起著關(guān)鍵作用,而AOP則可以幫助我們更好地管理和組織代碼,我們將深入研究如何結(jié)合AOP和異常處理來構(gòu)建健壯的應(yīng)用2023-09-09
Spring Boot右鍵maven build成功但是直接運(yùn)行main方法出錯(cuò)的解決方案
這篇文章主要介紹了Spring Boot-右鍵maven build成功但是直接運(yùn)行main方法出錯(cuò)的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Java多線程程序中synchronized修飾方法的使用實(shí)例
synchronized關(guān)鍵字主要北用來進(jìn)行線程同步,這里我們主要來演示Java多線程程序中synchronized修飾方法的使用實(shí)例,需要的朋友可以參考下:2016-06-06

