Appium-移动端自动测试框架,如何入门?

Appium是一个开源跨平台移动应用自动化测试框架。

既然只是想学习下Appium如何入门,那么我们就直奔主题。文章结构如下:

1、为什么要使用Appium?
2、如何搭建Appium工具环境?(超详细)
3、通过demo演示Appium的使用
4、Appium如何实现移动端UI自动化测试呢?
5、Appium视频类学习资源分享

ps:如果觉得文字图片不如视频来的直接,也可以直接看第五部分,有关“Appium视频类学习资源分享”。

一、为什么移动端要使用Appium?

UI自动化领域,如果说Web端的自动化框架第一选择是Seleum,那么移动端(手机)的自动化框架第一选择就是Appium。

为什么Appium在移动端测试地位这么高呢?来看它的5个优点:

1)跨平台支持:

Appium支持Android和iOS平台的自动化测试,使用相同的API可以编写跨平台的测试脚本。

2)支持多种编程语言:

Appium可以使用多种流行的编程语言编写测试脚本,包括Java、Python、JavaScript等。方便测试人员能够使用他们熟悉的语言编写自动化测试脚本。

3)兼容多种移动应用类型:

无论是原生移动应用(APP)、混合应用(Hybrid App)和移动网页应用(H5),Appium都支持自动化测试。

4)开放性和灵活性:

Appium是一个开源项目,让开发人员能够对其进行扩展和定制。它可以与其他测试框架和工具集成,如JUnit、TestNG和CI/CD工具等。

5)使用标准的WebDriver协议:

Appium使用WebDriver协议来与移动设备进行通信,这使得开发人员可以使用熟悉的API和命令,无需学习新的测试框架。

总的来说,Appium为测试人员提供了一种方便、灵活的方式来进行移动应用的UI自动化测试,帮助他们提高测试效率、减少人工重复工作,并提供可靠的测试结果,所以该工具是进行移动端 UI自动化的第一选择。

二、如何搭建Appium工具环境?(超详细)

要使用Appium工具,首先需要搭建工具使用环境,那如何搭建Appium的工具环境呢?以Python开发语言为例,需要分成5步走:

第一步:安装 jdk

Appium测试Android程序,需要用到Android开发者工具(adb和定位工具),它依赖了jdk,所以第一步需要先安装jdk(推荐安装1.8)

1 ) 先查下你电脑上是否已安装了JDK(很可能之前已经安装过)。

CMD打开终端,输⼊ java -version,如果能 看到版本信息,可以跳过第二步JDK的安装。

图片

2 ) 如果 java -version 看不到版本信息,下载JDK。

https://www.oracle.com/java/technologies/downloads/

图片

图片

3) 双击 下⾯ exe ⽂件完成安装。

⼀路 “下⼀步” 即可。这个过程会安装 jdk 和 jre 两个内容。耐⼼等待全部安装完成。

图片

4) 安装完成。

重新 cmd 打开新的终端。输⼊ java -version,能看到版本信息,说明安装成功。

图片

5) 如果依然看不到 版本信息,那么要配置 环境变量:将JDK路径:C:\Program Files\Java\jdk1.8.0_151\bin 配置到 Path 环境变量中。

图片

6)安装 Android SDK 工具

测试Android程序需要使用adb获取包名和界面名称,已经使用自带定位工具UIAutomatorViewer,需要需要安装Android SDK工具

6.1) 下载并解压Android SDK

图片

6.2) 配置环境变量

图片

然后再path环境变量添加:

%ANDROID_HOME%/tools;   %ANDROID_HOME%/platform-tools;

6.3) 验证adb

图片

6.4)直接安装appium桌面软件工具

图片

6.5)准备模拟器或者真机

需要提前准备Android模拟器(比如雷电模拟器)或者真机(工作中使用)

图片

6.6 ) pycharm中安装 appium-python

直接安装python的appium依赖包:

pip install Appium-Python-Client
pip show Appium-Python-Client

三、通过Demo演示Appium的使用

1、启动 appium 服务器

图片

2、模拟器/真机 连接成功

图片

3、获取应用的包名和界面名:adb shell dumpsys window | findstr mCurrentFocus

图片

4、pycharm中编写代码,如下代码为演示demo代码,在pycharm点击运行,雷电模拟器会自动打开设置应用

图片

四、如何进行Appium实现移动端UI自动化测试呢?

在完成Appium环境搭建和Demo使用后,该如何进行Appium实现移动端UI自动化测试呢?需要分几步走:

1、学习Appium的基础Api的使用

可以参考中文文档,学习appium相关基础的api操作,包含手机基础操作、元素定位、元素操作、获取元素信息、滑动、高级手势、手机操作等。

参考:https://www.kancloud.cn/testerhome/appium_docs_cn/2001595

2、学习PO模式

PO模式(Page Object 模式)是一种软件测试设计模式,用于在自动化测试中管理应用程序的页面。

它的主要目标是提高测试脚本的可读性、可维护性和重用性,同时降低测试脚本和页面实现之间的耦合度。

在PO模式中,每个页面或界面都被抽象为一个独立的对象,称为“页面对象”(Page Object)。页面对象封装了与页面相关的元素、操作和逻辑,并提供一组方法供测试脚本使用。具体而言,页面对象类通常包含以下内容:

1) 元素定位:页面对象包含页面上的元素定位器,如ID、class、XPath等,用于定位页面上的元素。
2)元素操作方法:页面对象提供针对页面元素的操作方法,如点击、输入、获取文本等,封装了与元素交互的操作。
3)页面逻辑和业务方法:页面对象可能包含一些与页面逻辑和业务相关的方法,如验证页面标题、提交表单等。

通过封装页面对象,测试脚本可以更高层次地描述测试步骤和操作,而不必关注页面的具体实现和定位方式。测试脚本可以直接调用页面对象的方法来与页面进行交互,提高了测试脚本的可读性和可维护性,并减少了代码的重复编写。

总之,PO模式是一种有效的设计模式,适用于自动化测试中对页面进行管理和交互的场景。它提供了一种组织和管理测试代码的结构化方法,使得测试脚本更加模块化、可重用和可维护。

3、学习搭建appium移动端自动化测试框架

结合PO模式和Pytest框架,学习和搭建一套完整的UI自动化测试框架,实现UI自动化测试,提升回归测试效率。

4、总结

要实现App的自动化测试,实现Appium工具的入门:

1-首先在windows下安装jdk,Android-sdk环境
2-安装appium桌面工具
3-安装模拟器(比如雷电模拟器),或者使用真机
4-安装python的依赖包(Appium-Python-Client)
5-启动appium服务器,启动模拟器,然后在pycharm中运行demo脚本,即可看到运行效果

接下来可以学习下常用的appium的api、学习如何进行元素定位、然后再学习PO模式的封装,即可完成appium工具的入门和使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/45903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通讯录的实现

> 作者简介:დ旧言~,目前大一,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 望小伙伴们点赞👍收藏✨加关注哟💕&#x1…

深入理解分布式架构,构建高效可靠系统的关键

深入探讨分布式架构的核心概念、优势、挑战以及构建过程中的关键考虑因素。 引言什么是分布式架构?分布式架构的重要性 分布式系统的核心概念节点和通信数据分区与复制一致性与一致性模型负载均衡与容错性 常见的分布式架构模式客户端-服务器架构微服务架构事件驱动…

[国产MCU]-W801开发实例-GPIO输入与中断

GPIO输入与中断 文章目录 GPIO输入与中断1、硬件准备2、软件准备3、驱动实现4、驱动测试W801的GPIO支持软件配置中断,中断触发方式包含:上升沿触发、下降沿触发、高电平触发、低电平触发。本文在前面[ 国产MCU]-W801开发实例-按键与GPIO输入的基础上实现GPIO中断配置。 1、硬…

分布式 | 如何搭建 DBLE 的 JVM 指标监控系统

本篇文章采用 Docker 方式搭建 Grafana Prometheus 实现对 DBLE 的 JVM 相关指标的监控系统。 作者:文韵涵 爱可生 DBLE 团队开发成员,主要负责 DBLE 需求开发,故障排查和社区问题解答。 本文来源:原创投稿 爱可生开源社区出品&a…

亚马逊点击广告对于卖家有什么好处

亚马逊点击广告对卖家来说有许多好处,它们可以帮助卖家增加产品曝光、提高销售量,并改善他们在亚马逊平台上的竞争地位。以下是一些卖家可能从亚马逊点击广告中获益的好处: 1、增加产品曝光度:通过在关键搜索结果页面上投放广告&…

MySQL8.0.26-Linux版安装

MySQL8.0.26-Linux版安装 1. 准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 CentOS7; 2. 下载Linux版MySQL安装包 MySQL :: Download MySQL Community Server (Archived Versions) 3. 上传MySQL安装包 4. 创建目录,并解压 mkdir mysql ​ tar -xvf mysql-8…

Flink 数据集成服务在小红书的降本增效实践

摘要:本文整理自实时引擎研发工程师袁奎,在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分: 小红书实时服务降本增效背景Flink 与在离线混部实践实践过程中遇到的问题及解决方案未来展望 点击查看原文视频 & 演…

Spring Clould 负载均衡 - Ribbon

视频地址:微服务(SpringCloudRabbitMQDockerRedis搜索分布式) Ribbon-负载均衡原理(P14) 具体实现时通过LoaBalanced注解实现,表示RestTemplate要被Ribbon拦截处理 orderservice调用user时候&#xff0c…

FPGA原理与结构——RAM IP核的使用与测试

目录 一、前言 二、RAM IP核定制 1、RAM IP核 step1 打开vivado工程,点击左侧栏中的IP Catalog step2 在搜索栏搜索RAM,找到Block Memory Generator IP核: 2、IP核定制 step3 Baisc界面定制 step4 端口定制 step5 Other Options st…

八种架构演进

日升时奋斗,日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征:应用服务和数据库服务器公用一台服务…

【vim 学习系列文章 5 - cscope 过滤掉某些目录】

文章目录 cscope 过滤目录介绍 cscope 过滤目录介绍 第一步创建自己的cscope脚本~/.local/bin/cscope.sh,如下: function my_cscope() {CODE_PATHpwdecho "$CODE_PATH"echo "start cscope...."if [ ! -f "$CODE_PATH/cscope.…

图片速览 FlashAttention+Softmax的安全计算形式(暂记)

FlashAttention最基础的方案来自使用高速的share memory来加速Softmax操作,实现Softmax的tiling方案。(Q,K,V之间的乘法可由gemm实现。) 左侧为GPU各部分的访问速度比较 FlashAttention使用平铺来防止大型实体化𝑁 &#x1d44…

docker搭建es+kibana

docker搭建eskibana 0 安装docker 如果是mac或者windows,可以直接安装Docker Desktop更加便捷。 前提条件: Docker可以运行在Windows、Mac、CentOS、Ubuntu等操作系统上 Docker支持以下的CentOS版本: CentOS 7 (64-bit)CentOS 6.5 (64-bit…

k8s集群监控方案--node-exporter+prometheus+grafana

目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 前置条件 安装好k8s集群(几个节点都可以,本人为了方便实验k8s集…

【自动化测试】接口自动化01

文章目录 一、熟悉若requests库以及底层方法的调用逻辑二、接口自动化以及正则和Jsonpath提取器的应用6. 高频面试题:9. 示例:接口关联13. 文件上传示例14. cookie关联的接口 努力经营当下 直至未来明朗 一、熟悉若requests库以及底层方法的调用逻辑 接…

系统架构师---软件重用、基于架构的软件设计、软件模型

目录 软件重用 构件技术 基于架构的软件设计 ABSD方法与生命周期 抽象功能需求 用例 抽象的质量和业务需求 架构选项 质量场景 约束 基于架构的软件开发模型 架构需求 需求获取 标识构件 需求评审 架构设计 架构文档 架构复审 架构实现 架构演化 前言&…

Linux:iptables SNAT与DNAT

目录 一、SNAT 1.1 SNAT原理与应用 1.2 SNAT转换前提条件 1.3 SNAT工作原理 1.4 SNAT实例 二、DNAT 2.1DNAT原理与应用 2.2 DNAT转换前提条件 2.2实例 一、SNAT 1.1 SNAT原理与应用 SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正…

性能比较 - Spring Boot 应用程序中的线程池与虚拟线程 (Project Loom)

本文比较了 Spring Boot 应用程序中的不同请求处理方法:ThreadPool、WebFlux、协程和虚拟线程 (Project Loom)。 在本文中,我们将简要描述并粗略比较可在 Spring Boot 应用程序中使用的各种请求处理方法的性能。 高效的请求处理在开发高性能后端…

嵌入式不如CS?信了你就上当了!

在现在的互联网上,有人疯狂劝退新人进入嵌入式行业。他们认为嵌入式的工资低于计算机科学,学习难度较大,前景也不好。 首先是工资方面,你要知道,计算机科学专业也有月薪四五千的人,也有月薪六位数的人。相…

Jmeter 连接 MySQL 数据库脚本

1、创建线程组 2、创建 JDBC Connection Configuration 3、创建 JDBC Request 4、最终创建的目录 5、重点来了 5.1 在百度中下载个 MySQL-connector-Java-8.0.28.jar,放在 jmeter 的 bin 目录下 5.2 在测试计划中,将 jar 包添加到脚本中 5.3 输入参…