App自动化测试之Appium环境搭建

简介: Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。

Appium简介

Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。支持多种语言。

Appium的核心是一个web服务器,它提供了一套REST的接口。它接收到客户端的连接,监听到命令,接着在移动设备上执行这个命令,然后将执行结果放到HTTP响应中返还给客户端。

对于Android系统,Appium使用的是UiAutomator2 Driver来驱动客户端设备,对于IOS系统,目前使用的是XCUITest。Appium同时还包含了Windows Driver和Mac Driver支持windows和Mac桌面应用的测试。


Appium环境搭建

  1. java1.8+版本

  2. Android SDK
  3. Appium Desktop
  4. Appium Client
  5. Android驱动
  • JAVA环境变量配置:要配置JAVA_HOME, PATH,classpath ,具体配置百度java环境配置自行解决,这里不再一一列举。
  • SDK环境变量配置:

先下载安卓的sdk工具:

http://tools.android-studio.org/index.php/sdk

也可以从我网盘下载我已经下载好的包:

链接:https://pan.baidu.com/s/1x73i2wlBFIFDb3yTB8AUmw

提取码:1234

配置环境变量:ANDROID_HOME,然后再PATH里面加入tools和platform-tools两个路径:

%ANDROID_HOME%\tools;

%ANDROID_HOME%\platform-tools;

配置好后,在命令行窗口输入adb version 即可检查是否配置好。


微信图片_20220113172636.png


  • Appium Desktop 安装

https://github.com/appium/appium-desktop/releases 下载安装包  (也可以通过上面的网盘下载),下载完之后,双击进行安装即可。

  • Appium Server 安装

先安装nodejs,配置环境变量。然后使用命令安装appium:

npm install -g appium

通过上面这个命令安装的时候,下载很慢,经常失败或者卡住,可以使用cnpm进行安装:

npm install -g cnpm --registry=https://registry.npm.taobao.org


cnpm install -g appium

安装完成后,命令行输入appium即可启动appium服务。


到此,其实appium的环境已经搭建完毕。接下来可以使用Appium Client来来模拟自动操作app。

安装基于python语言的appium client:

pip install appium-python-client


获取要测试的当前打开app的应用包名和activity名称:

adb shell dumpsys window w |findstr \/ |findstr name=


微信图片_20220113172643.png


安装Android驱动

将手机用数据线连接电脑,打开手机开发者模式下的调试模式,然后在电脑上cmd窗口输入adb devices ,能够输出设备的信息即可:


微信图片_20220113172649.png


录制脚本

启动Appium Desktop,点击Start server


微信图片_20220113172652.png


在进入的页面中点击Start Inspector Session,进入录制页面


微信图片_20220113172655.png


按照下图输入手机对应的系统以及版本号的相关信息,然后点击Start Session.


微信图片_20220113172658.png


接下来执行一段脚本来验证环境是否搭建成功,是否可以正常操作app,以华为P20手机上的系统自带的计算器软件为例,演示一下如何操作app的一个最简单的demo。


开始录制,录制操作见下图:

选中元素后,点击右边相应的操作。Tap为点击元素,Send keys为文本框录入,Clear为清空文本框。


微信图片_20220113172701.gif


微信图片_20220113172704.png


录制出来的脚本如下:

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from appium import webdriver
caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "6.0.1"
caps["deviceName"] = "C9CBY15427001302"
caps["deviceName"] = "C9CBY15427001302"
caps["appPackage"] = "com.android.calculator2"
caps["ensureWebviewsHavePages"] = True
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
el1 = driver.find_element_by_accessibility_id("1")
el1.click()
el2 = driver.find_element_by_accessibility_id("加")
el2.click()
el3 = driver.find_element_by_accessibility_id("2")
el3.click()
el4 = driver.find_element_by_accessibility_id("等于")
el4.click()
driver.quit()

运行上面的脚本,就会看到通过代码可以启动华为手机上的计算器进行相关的操作 。


说明:

1、如果不需要录制的话,是可以不用在电脑上安装Appium Desktop的,直接安装Appium Server即可。运行脚本的时候,会需要在手机上安装一个Appium Setting的软件之后才可操作APP。

2、安卓app除了使用Appium Desktop里面的Inspector功能定位/录制元素之外,还可以使用android sdk目录下的tools目录下的uiautomatorviewer.bat进行元素定位,然后手写脚本即可。

3、本文只是演示通过appium操作安卓手机的一个简单的demo教程,在实际实战过程中还会遇到很多的问题 ,比如系统权限、横竖屏处理、Toast弹窗等问题。

相关文章
|
2月前
|
监控 测试技术 API
n8n自动化测试教程 (1):环境搭建与初识n8n
n8n是一款开源、可视化的工作流自动化工具,测试工程师可通过拖拽节点快速构建API测试流程,实现测试编排、数据管理、自动化监控与告警等功能,提升测试效率与覆盖率。
|
4月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
9月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1018 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
10月前
|
Dart 前端开发 架构师
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
492 26
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
12月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
713 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
XML Java 测试技术
技术分享 | app自动化测试(Android)--App 控件交互
通常获取到元素之后,可以调用 click() 方法来实现对这个元素的点击操作
|
20天前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
296 139

热门文章

最新文章