App自動(dòng)化測(cè)試在面臨元素定位時(shí)要比Web復(fù)雜很多,除了原生應(yīng)用、MWeb應(yīng)用、混合應(yīng)用之外,還有flutter的逐漸流行,而且很多老的App都是部分內(nèi)嵌flutter頁面,這又給App自動(dòng)化定位進(jìn)一步增加了難度,圖像識(shí)別是一個(gè)很好的方向;可以有效屏蔽頁面元素屬性。
Appium 在V1.9.0版本中提供了針對(duì)于圖像識(shí)別的全新圖片元素定位的方法。
安裝列表
先來羅列要安裝的工具,有點(diǎn)多~!
安裝基礎(chǔ)
這部分不會(huì)重點(diǎn)介紹,請(qǐng)自行準(zhǔn)備。
windows 11
node.js/npm
chocolatey
Java 11
Android設(shè)備一臺(tái)
安裝工具
本文偏重介紹一下工具的安裝。
appium
appium-doctor
cmake
windows-build-tools
chocolatey
OpenCV
opencv4nodejs
python-client(appium)
安裝工作
以下需要用到命令的,請(qǐng)以管理員權(quán)限在windows PowerShell下執(zhí)行。
安裝appium
使用appium 有兩種方式,appium命令 和appium-desktop,這里我們安裝和使用前者。
>npminstall-gappium
安裝Cmake
OpenCV 使用 Cmake 來構(gòu)建工程, 下載編譯后的文件即可。
下載地址:https://github.com/Kitware/CMake/releases/
下載完后解壓到任意路徑,例如:D:appium,在環(huán)境變量中path添加 Cmake 的 bin 目錄
D:appiumcmake-3.23.1-windows-x86_64in-> 添加環(huán)境變量Path。
安裝 windows-build-tools
Build Tools 即構(gòu)建工具,用于把源代碼生成可執(zhí)行應(yīng)用程序的過程自動(dòng)化的程序(例如Android app生成apk)。構(gòu)建包括編譯、連接等把代碼打包成可用的或可執(zhí)行的形式。
>npminstall--gwindows-build-tools
安裝過程會(huì)下載和安裝python27,安裝路徑如下:C:Users{user}.windows-build-toolspython27
C:Usersfnngj.windows-build-toolspython27-> 添加環(huán)境變量Path。
安裝OpenCV
>chocoinstallOpenCV-y-version4.5.0
choco 是windows下面的包管理工具。
OpenCV默認(rèn)安裝路徑:C: oolsopencv
配置環(huán)境變量
新建系統(tǒng)變量:
變量名:OPENCV_BIN_DIR 變量值:C: oolsopencvuildx64vc15in 變量名:OPENCV_DIR 變量值:C: oolsopencvuildx64vc15 變量名:OPENCV_INCLUDE_DIR 變量值:C: oolsopencvuildinclude 變量名:OPENCV_LIB_DIR 變量值:C: oolsopencvuildx64vc15lib
%OPENCV_BIN_DIR%-> 添加到環(huán)境變量path
安裝opencv4nodejs
設(shè)置環(huán)境變量
>setOPENCV4NODEJS_DISABLE_AUTOBUILD=1
安裝opencv4nodejs
>npmi-gopencv4nodejs
安裝appium-doctor
appium-doctor用于檢查appium安裝環(huán)境。通過npm安裝。
>npmi-gappium-doctor
檢查appium環(huán)境。
>appium-doctor infoAppiumDoctorAppiumDoctorv.1.16.0 infoAppiumDoctor###Diagnosticfornecessarydependenciesstarting### infoAppiumDoctorTheNode.jsbinarywasfoundat:D:ProgramFiles odejs ode.EXE infoAppiumDoctorNodeversionis14.18.1 infoAppiumDoctorANDROID_HOMEissetto:D:androidSdk infoAppiumDoctorJAVA_HOMEissetto:C:ProgramFilesJavajdk-11.0.15 infoAppiumDoctorCheckingadb,android,emulator infoAppiumDoctor'adb'isinD:androidSdkplatform-toolsadb.exe infoAppiumDoctor'android'isinD:androidSdk oolsandroid.bat infoAppiumDoctor'emulator'isinD:androidSdkemulatoremulator.exe infoAppiumDoctoradb,android,emulatorexist:D:androidSdk infoAppiumDoctor'bin'subfolderexistsunder'C:ProgramFilesJavajdk-11.0.15' infoAppiumDoctor###Diagnosticfornecessarydependenciescompleted,nofixneeded.### infoAppiumDoctor infoAppiumDoctor###Diagnosticforoptionaldependenciesstarting### infoAppiumDoctoropencv4nodejsisinstalledat:C:UsersfnngjAppDataRoaming pm.Installedversionis:5.6.0 infoAppiumDoctorBye!Runappium-doctoragainwhenallmanualfixeshavebeenapplied! infoAppiumDoctor
看到opencv4nodejs前面 √ 即可。
進(jìn)行自動(dòng)化測(cè)試
安裝 python-client
appium支持不同語言的client編寫自動(dòng)化測(cè)試用例。這里以python的 python-client為例。
https://github.com/appium/python-client
>pipinstallAppium-Python-Client
啟動(dòng) appium
>appium [Appium]WelcometoAppiumv1.22.3 [Appium]AppiumRESThttpinterfacelistenerstartedon0.0.0.0:4723
編寫自動(dòng)化用例
以某app為例,右下角懸浮的按鈕很難定位,可以截圖保存。
界面:
按鈕截圖:
保存路徑為:D:appiumimagewrite.png
編寫自動(dòng)規(guī)劃用例
fromtimeimportsleep fromappiumimportwebdriver #定義運(yùn)行環(huán)境 desired_caps={ 'deviceName':'JEF_AN20', 'automationName':'appium', 'platformName':'Android', 'platformVersion':'10.0', 'appPackage':'com.company.bbs', 'appActivity':'.ui.LoadingActivity', 'noReset':True, 'ignoreHiddenApiPolicyError':True } #啟動(dòng)App dr=webdriver.Remote( command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps) sleep(2) #通過圖片定位元素 dr.find_element_by_image(r"D:appiumimagewrite.png").click()
總結(jié)
本文簡單總結(jié)了整個(gè)安裝過程,在這個(gè)過程中必定會(huì)踩不少坑,比如npm安裝很慢 或 報(bào)錯(cuò)。缺少相關(guān)依賴。android SDK如何安裝。需要一些相關(guān)的知識(shí)儲(chǔ)備。
-
Android
+關(guān)注
關(guān)注
12文章
3917瀏覽量
127036 -
圖像識(shí)別
+關(guān)注
關(guān)注
9文章
518瀏覽量
38210 -
APP
+關(guān)注
關(guān)注
33文章
1566瀏覽量
72334 -
SDK
+關(guān)注
關(guān)注
3文章
1020瀏覽量
45693
原文標(biāo)題:appium基于openv4node圖像識(shí)別進(jìn)行自動(dòng)化測(cè)試
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論