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文章
4041浏览量
134806 -
图像识别
+关注
关注
9文章
535浏览量
40244 -
APP
+关注
关注
33文章
1596浏览量
76196 -
SDK
+关注
关注
3文章
1113浏览量
52175
原文标题:appium基于openv4node图像识别进行自动化测试
文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
ArkUI-X跨平台框架接入指南
Android SDK开发环境搭建
安装Vuforia SDK步骤
基于高通Vuforia SDK搭建Android版移动AR应用开发环境
Android版高通AR Vuforia QCAR SDK学习笔记
安装使用Qualcomm Snapdragon神经处理引擎(NPE) SDK
Android SDK 开发中文文档
SDK Manager PC Android模拟器安装使用
你知道基于Ubuntu的Tizen SDK怎样安装?
Core 3399J Android 7.1 industry SDK源码
AIO 3399C Android 7.1 industry SDK源码
MobPush:Android SDK 集成指南
android SDK如何安装
评论