App自动化测试在面临元素定位时要比Web复杂很多,除了原生应用、MWeb应用、混合应用之外,还有flutter的逐渐流行,而且很多老的App都是部分内嵌flutter页面,这又给App自动化定位进一步增加了难度,图像识别是一个很好的方向;可以有效屏蔽页面元素属性。
Appium 在V1.9.0版本中提供了针对于图像识别的全新图片元素定位的方法。
安装列表
先来罗列要安装的工具,有点多~!
安装基础
这部分不会重点介绍,请自行准备。
windows 11
node.js/npm
chocolatey
Java 11
Android设备一台
安装工具
本文偏重介绍一下工具的安装。
appium
appium-doctor
cmake
windows-build-tools
chocolatey
OpenCV
opencv4nodejs
python-client(appium)
安装工作
以下需要用到命令的,请以管理员权限在windows PowerShell下执行。
安装appium
使用appium 有两种方式,appium命令 和appium-desktop,这里我们安装和使用前者。
>npminstall-gappium
安装Cmake
OpenCV 使用 Cmake 来构建工程, 下载编译后的文件即可。
下载地址:https://github.com/Kitware/CMake/releases/
下载完后解压到任意路径,例如:D:appium,在环境变量中path添加 Cmake 的 bin 目录
D:appiumcmake-3.23.1-windows-x86_64in-> 添加环境变量Path。
安装 windows-build-tools
Build Tools 即构建工具,用于把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk)。构建包括编译、连接等把代码打包成可用的或可执行的形式。
>npminstall--gwindows-build-tools
安装过程会下载和安装python27,安装路径如下:C:Users{user}.windows-build-toolspython27
C:Usersfnngj.windows-build-toolspython27-> 添加环境变量Path。
安装OpenCV
>chocoinstallOpenCV-y-version4.5.0
choco 是windows下面的包管理工具。
OpenCV默认安装路径:C: oolsopencv
配置环境变量
新建系统变量:
变量名:OPENCV_BIN_DIR 变量值:C: oolsopencvuildx64vc15in 变量名:OPENCV_DIR 变量值:C: oolsopencvuildx64vc15 变量名:OPENCV_INCLUDE_DIR 变量值:C: oolsopencvuildinclude 变量名:OPENCV_LIB_DIR 变量值:C: oolsopencvuildx64vc15lib
%OPENCV_BIN_DIR%-> 添加到环境变量path
安装opencv4nodejs
设置环境变量
>setOPENCV4NODEJS_DISABLE_AUTOBUILD=1
安装opencv4nodejs
>npmi-gopencv4nodejs
安装appium-doctor
appium-doctor用于检查appium安装环境。通过npm安装。
>npmi-gappium-doctor
检查appium环境。
>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前面 √ 即可。
进行自动化测试
安装 python-client
appium支持不同语言的client编写自动化测试用例。这里以python的 python-client为例。
https://github.com/appium/python-client
>pipinstallAppium-Python-Client
启动 appium
>appium [Appium]WelcometoAppiumv1.22.3 [Appium]AppiumRESThttpinterfacelistenerstartedon0.0.0.0:4723
编写自动化用例
以某app为例,右下角悬浮的按钮很难定位,可以截图保存。
界面:
按钮截图:
保存路径为:D:appiumimagewrite.png
编写自动规划用例
fromtimeimportsleep fromappiumimportwebdriver #定义运行环境 desired_caps={ 'deviceName':'JEF_AN20', 'automationName':'appium', 'platformName':'Android', 'platformVersion':'10.0', 'appPackage':'com.company.bbs', 'appActivity':'.ui.LoadingActivity', 'noReset':True, 'ignoreHiddenApiPolicyError':True } #启动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()
总结
本文简单总结了整个安装过程,在这个过程中必定会踩不少坑,比如npm安装很慢 或 报错。缺少相关依赖。android SDK如何安装。需要一些相关的知识储备。
-
Android
+关注
关注
12文章
3943浏览量
127812 -
图像识别
+关注
关注
9文章
521浏览量
38361 -
APP
+关注
关注
33文章
1577浏览量
72707 -
SDK
+关注
关注
3文章
1045浏览量
46197
原文标题:appium基于openv4node图像识别进行自动化测试
文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论