『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium

简介: 『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium

1 关于Android UI自动化测试

  • Android UI自动化测试工具有很多,这些工具基本是基于Android控件层面,涉及WidgetsWebView两类;
  • 而关于其测试方法一般有二:
第一种是:
通过 Android提供的各种服务来获取当前窗口的视图信息,如 UI Automator

第二种是:
基于Instrumention,把测试APK和被测APK运行在同一个进程中,通过Java反射机制来获取当前窗口的所有视图,如Robotium

  • 常用的测试工具有:UI AutomatorAppiumEspressoSelendroidRobotium等;
  • 本文主要介绍的是Appium

2 Appium简介

  • Appium是开源的、跨平台的测试自动化测试框架;
  • 主要用于测试移动端应用;
  • Appium支持模拟器和真机上的原生应用、混合应用、Web应用;
  • Appium使用WebDriverJSON wire协议来驱动Apple系统的UI Automator库、Android系统的UI Automator框架;
  • Appium集成了Selendroid框架,所以Appium支持比较老版本的Android
  • Appium支持Selenium WebDriver支持的所有语言(JavaPythonJavaScriptObjective-CPHPRubyC#ClojurePerl等)。

3 Appium原理

3.1 Android端过程

  • 客户端client,指咱们的测试脚本;
  • Appium在服务端启动一个Server(4723端口),用来接口WebDriver client标准的rest请求,调用对应框架响应操作;
  • Appium Server把请求转发给中间件Bootstrap.jar(手机上),Bootstrap.jar监听4724端口并接收Appium命令;
  • Bootstrap将执行结果返回给Appium Server
  • Appium Server再将结果返回给Appium Client

3.2 iOS端过程

  • 客户端client,指咱们的测试脚本;
  • Appium在服务端启动一个Server(4723端口),用来接口WebDriver client标准的rest请求,调用对应框架响应操作;
  • Appium Server调用instruments.js,启动socket server,分出子进程instruments.app,将bootstrap.js注入device
  • bootstrap.js将执行结果返回给Appium Server
  • Appium Server再将结果返回给Appium Client

4 补充内容

  • UI Automator测试框架是Android SDK自带的APP UI自动化测试Java库;
  • UI AutomatorH5支持有限;
  • Appium 引入了chromedriver等来实现基于H5的自动化;
  • Android和iOS启动过程的区别在Appium将请求转发给了Bootstrap.jarbootstrap.js,再由Bootstrap驱动UI AutomatorUI Automation

5 JDK下载

在这里插入图片描述

  • 根据操作系统选择下载,我的是Windows平台;
  • 双击安装文件,按照提示,可以一步步安装,中间会有两次选择安装路径,第一次是安装Jre,第二次是安装Jdk,两次的安装目录,建议单独放在一个磁盘的根目录,如下,笔者的是:jdk-11.0.8

在这里插入图片描述

6 JDK配置

  • 新建系统环境变量JAVA_HOME

在这里插入图片描述

  • 编辑系统变量Path
Windows10 电脑,新建变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
Windows7 电脑,在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;注意用;号分隔
  • 新建系统变量CLASSPATH变量:
变量名:CLASSPATH  
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 验证java环境:

在这里插入图片描述

7 SDK下载

  • SDK下载: SDK官网和 [下载较快的SDK网站]
  • 比如我们选第二个进入下载页面:

在这里插入图片描述

  • 选择对应的平台下载即可,我这里是windows平台的;
  • 下载后解压到指定目录,比如:

在这里插入图片描述

8 SDK配置

  • SDKplatform-tools、根目录、tools配置到系统环境变量path中;
D:\android-sdk-windows\platform-tools
D:\android-sdk-windows
D:\android-sdk-windows\tools

在这里插入图片描述

9 配置Android环境

  • 新建系统环境变量ANDROID_HOME值为SDK根目录:
ANDROID_HOME
D:\android-sdk-windows

在这里插入图片描述

  • 新建系统环境变量ANDROID_PATH值为SDKplatform-tools目录:
ANDROID_PATH
D:\android-sdk-windows\platform-tools

在这里插入图片描述

10 安装NodeJs

  • 安装这个只要是用它来安装appium以及验证后续安装的Appium是否成功;
  • 下载地址:NodeJs

在这里插入图片描述

  • 下载后直接双击运行即可node-v20.10.0-x64.msi
  • 安装完在命令行执行npm看到以下界面则表示node安装成功了:

在这里插入图片描述

11 解决node安装时提示不是内部命令

  • 需要配置node.js的一些环境变;
  • node.js的安装目录下新建两个文件夹如下node_globalnode_cache

在这里插入图片描述

  • 打开系统环境变量,新增NODE_PATH变量:
NODE_PATH
D:\nodejs\node_modules

在这里插入图片描述

  • 在系统环境变量的path新增:%NODE_PATH%

在这里插入图片描述

  • 打开用户环境变量,修改path中的npm路径为:D:\nodejs\node_global

在这里插入图片描述
在这里插入图片描述

  • 重启电脑、重启电脑、重启电脑(重要的事情说三遍)。

12 安装配置Appium

在这里插入图片描述

  • 点击左侧的install Appium使用NPM安装:
npm i --location=global appium
  • 命令行输入appium即可:
C:\Windows\System32>appium
[Appium] Welcome to Appium v2.2.3
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium]        http://172.16.1.33:4723/
[Appium]        http://127.0.0.1:4723/ (only accessible from the same host)
[Appium]        http://172.31.32.1:4723/
[Appium] No drivers have been installed in C:\Users\Administrator\.appium. Use the "appium driver" command to install the one(s) you want to use.
  • 关于安装可参考官网:

在这里插入图片描述

  • 还有环境的要求:

在这里插入图片描述

  • 还有一种安装方式为使用GUI界面去安装appium-desktop

在这里插入图片描述

  • 选择的对应包即可:

在这里插入图片描述

  • 这里需要注意下,官网给出了明确说明,appium-desktop将不再支持

Appium 2.0+版本,建议使用命令行方式,
在这里插入图片描述

13 appium环境验证

  • 先安装appium-doctor
npm install -g appium-doctor
  • 命令行输入appium-doctor,检查环境是否ok:

在这里插入图片描述

14 appium安装问题排查

  • appium给出这几个错误的安装方法,但是有的地址无法访问了,所以以下对每个错误进行了排查:
### Optional Manual Fixes ###
info AppiumDoctor The configuration can install optionally. Please do the following manually:
WARN AppiumDoctor  ➜ mjpeg-consumer module is required to use MJPEG-over-HTTP features. Please install it with 'npm i -g mjpeg-consumer'.
WARN AppiumDoctor  ➜ bundletool.jar is used to handle Android App Bundle. Please read http://appium.io/docs/en/writing-running-appium/android/android-appbundle/ to install it. Also consider adding the ".jar" extension into your PATHEXT environment variable in order to fix the problem for Windows
WARN AppiumDoctor  ➜ gst-launch-1.0.exe and gst-inspect-1.0.exe are used to stream the screen of the device under test. Please read https://appium.io/docs/en/writing-running-appium/android/android-screen-streaming/ to install them and for more details

14.1 cmdline-tools问题

  • 我这一大堆错的,挨个排查吧,先看下这个:
apkanalyzer.bat could NOT be found in D:\android-sdk-windows!

在这里插入图片描述

  • 解压到SDK的目录下:

在这里插入图片描述

  • cmdline-tools\bin目录下的apkanalyzer.bat文件复制到platform-tools下:

在这里插入图片描述

  • 重新打开cmd,输入appium-doctor ,查看问题解决了:

在这里插入图片描述

14.2 opencv4nodejs问题

  • 第二个问题:
 opencv4nodejs cannot be found.

在这里插入图片描述

  • 下载后双击cmake-3.28.0-rc5-windows-x86_64.msi,安装到默认路径,并勾选增加环境变量给所有用户:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 如果还是不行,建议手动将其目录添加到系统环境变量中:
C:\Program Files\CMake\bin\
  • 输入cmake -version查看:
cmake version 3.28.0-rc5
  • 安装opencv4nodejs
npm -g install opencv4nodejs --ignore-scripts
  • 重新检查看是否还会报错opencv4nodejs 错误,发现是ok了:

在这里插入图片描述

14.3 ffmpeg问题

  • 第三个错误:
 ffmpeg cannot be found

在这里插入图片描述
在这里插入图片描述

  • 下载后ffmpeg-release-essentials.zip解压到某个目录下:
D:\ffmpeg-6.1-essentials_build
  • 并添加环境变量:
D:\ffmpeg-6.1-essentials_build\bin
  • 再次检查发现ffmpeg也是ok的:

在这里插入图片描述

14.4 mjpeg-consumer问题

  • 第四个问题:
 mjpeg-consumer cannot be found
  • 直接使用npm i -g mjpeg-consumer安装即可;
  • 排查也是ok了:

在这里插入图片描述

14.5 bundletool.jar问题

  • 第五个问题:
bundletool.jar cannot be found

在这里插入图片描述

  • 下载后为bundletool-all-1.15.6.jar重新命名为bundletool.jar,在android sdk目录下,新建bundle-tools目录,把bundletool.jar包放入其中:

在这里插入图片描述

  • 配置环境,在用户和系统环境的path后都追加上述路径的环境:
D:\android-sdk-windows\bundle-tools
  • 修改环境变量中的 PATHTEXT 添加:;.JAR

在这里插入图片描述

  • 验证也是ok了:

在这里插入图片描述

14.6 gst-launch问题

  • 第六个问题:
gst-launch-1.0.exe and/or gst-inspect-1.0.exe cannot be found

在这里插入图片描述

  • 双击下载的gstreamer-1.0-mingw-x86_64-1.22.7.msi

在这里插入图片描述

  • 在这里插入图片描述
  • 增加环境变量:
F:\gstreamer\1.0\mingw_x86_64\bin
  • 验证是ok了:

在这里插入图片描述

15 完整无报错的Appium信息

  • 所有的错误都排查后,完整的信息应该如下:
C:\Windows\System32>appium-doctor
WARN AppiumDoctor [Deprecated] Please use appium-doctor installed with "npm install @appium/doctor --location=global"
info AppiumDoctor Appium Doctor v.1.16.2
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor  ✔ The Node.js binary was found at: D:\nodejs\node.EXE
info AppiumDoctor  ✔ Node version is 20.10.0
info AppiumDoctor  ✔ ANDROID_HOME is set to: D:\android-sdk-windows
info AppiumDoctor  ✔ JAVA_HOME is set to: D:\jdk-11.0.8
info AppiumDoctor    Checking adb, android, emulator, apkanalyzer.bat
info AppiumDoctor      'adb' is in D:\android-sdk-windows\platform-tools\adb.exe
info AppiumDoctor      'android' is in D:\android-sdk-windows\tools\android.bat
info AppiumDoctor      'emulator' is in D:\android-sdk-windows\tools\emulator.exe
info AppiumDoctor      'apkanalyzer.bat' is in D:\android-sdk-windows\platform-tools\apkanalyzer.bat
info AppiumDoctor  ✔ adb, android, emulator, apkanalyzer.bat exist: D:\android-sdk-windows
info AppiumDoctor  ✔ 'bin' subfolder exists under 'D:\jdk-11.0.8'
info AppiumDoctor ### Diagnostic for necessary dependencies completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor ### Diagnostic for optional dependencies starting ###
info AppiumDoctor  ✔ opencv4nodejs is installed at: D:\nodejs\node_global. Installed version is: 5.6.0
info AppiumDoctor  ✔ ffmpeg is installed at: D:\ffmpeg-6.1-essentials_build\bin\ffmpeg.EXE. ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
info AppiumDoctor  ✔ mjpeg-consumer is installed at: D:\nodejs\node_global. Installed version is: 2.0.0
info AppiumDoctor  ✔ bundletool.jar is installed at: D:\android-sdk-windows\bundle-tools\bundletool.jar
info AppiumDoctor  ✔ gst-launch-1.0.exe and gst-inspect-1.0.exe are installed at: F:\gstreamer\1.0\mingw_x86_64\bin\gst-launch-1.0.exe and F:\gstreamer\1.0\mingw_x86_64\bin\gst-inspect-1.0.exe
info AppiumDoctor ### Diagnostic for optional dependencies completed, no fix possible. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
目录
相关文章
|
12天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
48 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
|
1月前
|
开发工具 iOS开发 MacOS
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
69 0
|
2月前
|
数据管理 测试技术 持续交付
自动化环境搭建
自动化环境搭建
|
2月前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
2月前
|
机器学习/深度学习 人工智能 文字识别
AI计算机视觉笔记二十:PaddleOCR环境搭建及测试
OCR技术广泛应用于日常生活中,与人脸识别一样常见。PaddleOCR是一个基于飞桨的OCR工具库,具有超轻量级中文OCR模型,支持中英文数字组合、竖排及长文本识别。本文档详细介绍了PaddleOCR的学习过程,包括环境搭建、安装、样本标注及测试步骤。使用AutoDL云平台进行环境创建,并提供了详细的命令行操作指南,帮助用户顺利完成PaddleOCR的部署与测试。
|
2月前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记十四:YOLOV5环境搭建及测试全过程
本文详细记录了在Windows 10环境下从零开始搭建yolov5环境并进行测试的全过程,涵盖环境配置、依赖安装及模型测试等关键步骤。文章首先介绍了所需环境(Python 3.8、yolov5-5.0),接着详细说明了如何使用Miniconda3创建与激活虚拟环境,并通过具体命令演示了如何下载安装yolov5及相关依赖库。最后,通过一系列命令展示了如何下载预训练模型并对示例图像进行目标检测,同时解决了一些常见错误。适合初学者跟随实践。如需转载,请注明原文出处。
|
3月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
241 0
|
3月前
|
Java 测试技术 API
探索自动化测试的奥秘:从Selenium到Appium
【8月更文挑战第31天】本文旨在引导读者理解自动化测试的重要性,并逐步深入介绍如何利用Selenium和Appium这两个强大的工具来提升测试效率和质量。文章不仅分享理论知识,还通过具体代码示例,展示如何在Web应用和移动应用测试中实施自动化策略。

热门文章

最新文章