当前位置: 首页 > news >正文

Appium —— 初识移动APP自动化测试框架Appium

说到移动APP自动化测试,代表性的测试框架非Appium莫属,从今天开始我们将从APP结构解析、Appium框架学习、安卓/iOS自动化测试实战、自动遍历回归测试、自动化测试平台及持续集成,多个维度一起由浅入深的学废Appium

今天我们先来初步认识Appium,以及移动APP的UI自动化应该怎么设计更合理

1、Appium设计理念
Appium是开源的、由WebdriverAgent、espresso、UI automator2 多个服务集成的框架,驱动各端完成自动化测试

Appium支持多语言:python java nodejs,一门语言就可以完成多端测试工作

Appium支持跨平台:Android、iOS、windows、mac

Appium支持底层多引擎可切换,比如iOS的:KIF、WDA、XCTest;Android的: robotium、ui automator

你的客户端可以发送HTTP请求告诉Appium你想为什么样的程序提供自动化,并帮我点击某个按钮,实现断言

2、Appium底层引擎列表
Android:主要的引擎是分为两个selendroid、Esresso 引擎: 这两个引擎可以完成更加底层的调用,比如调用底层SDK的APIUI automator2:用于支持跨APP测试、兼容性测试

IOS: XCUItest引擎UI automator:已经被Apple公司废弃XCUItest:Facbook的WDA(webdriverAgent)

3、Appium多端架构体系一览图

 

遍历工具 or 脚本,通过webdriver发起HTTP请求

appium 服务接收后, 通过上述所说的中间引擎去调用对应的Api 或 App

如果说测的是手机浏览器、小程序等,需要借助chrome driver、webview内核去调用

4、合理的使用UI自动化测试
UI自动化测试分为传统的基于测试用例的测试以及自动遍历测试基于测试用例的测试

价值:基于用例维护体系,核心、复杂的业务流程须交给基于用例维护的测试体系去维护、支持老功能的回归

缺点:会有用例维护成本、不能覆盖到新功能的探索,需重新写测试用例

自动遍历测试

定义:以自动化的方式对APP进行充分的功能遍历以探索bug

价值:降低自动化维护成本,覆盖兼容性、稳定性、性能、以及基本业务的断言一个APP差不多有50~60%是属于非常简单的浏览,数据展示等,完全可以交给自动化遍历去维护,同样支持基础老功能的回归

用途:多设备兼容测试、自动化专项测试

4、移动APP分层测试策略
单元测试:使用APP分层测试策略,增加单测规模,控制UI自动化测试规模

基于测试用例的测试:核心集成与验收测试 用例交给自动化测试

自动遍历测试:大部分的基础回归测试交给自动遍历

人工测试:测试团队主负责,整个产品团队参与

使用不同的测试方法 去解决产品中不同的测试诉求,通过安卓官方的测试指导和行业内已经成熟的测试技术,找到适合自己公司的一套测试手段,从而对公司的测试体系进行相关建设

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

相关文章:

Appium —— 初识移动APP自动化测试框架Appium

说到移动APP自动化测试,代表性的测试框架非Appium莫属,从今天开始我们将从APP结构解析、Appium框架学习、安卓/iOS自动化测试实战、自动遍历回归测试、自动化测试平台及持续集成,多个维度一起由浅入深的学废Appium 今天我们先来初步认识Appi…...

自助式可视化开发,ETLCloud的集成之路

自助式可视化开发 自助式可视化开发是指利用可视化工具和平台,使非技术人员能够自主创建、定制和部署数据分析和应用程序的过程。 传统上,数据分析和应用程序开发需要专业的编程和开发技能。但是,自助式可视化开发工具的出现,使…...

diffu-Distributed inference with multiple GPUs

pytorch的ddp...

在Python中使用Kafka帮助我们处理数据

Kafka是一个分布式的流数据平台,它可以快速地处理大量的实时数据。Python是一种广泛使用的编程语言,它具有易学易用、高效、灵活等特点。在Python中使用Kafka可以帮助我们更好地处理大量的数据。本文将介绍如何在Python中使用Kafka简单案例。 一、安装K…...

进程和线程和协程区别

目录 一、进程和线程 二、线程上下文切换 三、线程与协程区别 一、进程和线程 线程是可以由调度程序对立管理的最小程序指令集,而进程是程序运行的实例。 大多情况下,线程是进程的组成部分,一个进程中可以存在多个线程,这些线…...

银行测试:第三方支付平台业务流,功能/性能/安全测试方法

1、第三方支付平台的功能和结构特点 在信用方面,第三方支付平台作为中介,在网上交易的商家和消费者之间作一个信用的中转,通过改造支付流程来约束双方的行为,从而在一定程度上缓解彼此对双方信用的猜疑,增加对网上购物…...

神经网络可以计算任何函数的可视化证明

神经网络可以计算任何函数的可视化证明 对于神经网络,一个显著的事实就是它可以计算任何函数。 如下:不管该函数如何,总有神经网络能够对任何可能的输入x,输出值f(x) 即使函数有很多输入和输出&#xff0…...

SQL进阶理论篇(十三):数据库的查询优化器是什么?

文章目录 简介什么是查询优化器查询优化器的两种优化方式总结参考文献 简介 事务可以让数据库在增删改查的过程中,保证数据的正确性和安全性,而索引可以帮数据库提升数据的查找效率。查询优化器,则是帮助我们获取更高的SQL查询性能。 本节我…...

视觉SLAM中的相机分类及用途

视觉SLAM(Simultaneous Localization and Mapping)算法主要用于机器人和自动导航系统中,用于同时进行定位和建立环境地图。这种算法依赖于相机来捕捉环境数据。根据视觉SLAM的具体需求和应用场景,可以使用不同类型的相机。以下是用…...

Gin之GORM多表关联查询(多对多;自定义预加载SQL)

数据库三个,如下: 注意:配置中间表的时候,表设计层面最好和配置的其他两张表契合,例如其他两张表为fate内的master和slave;要整合其对应关系的话,设计中间表的结构为master_id和slave_id最好(不然会涉及重写外键的操作) 重写外键(介绍) 对于 many2many 关系,连接表…...

linux 调试工具 GDB 使用

gdb是linux下常用的代码调试工具,本文记录常用命令。 被调试的应用需要使用 -g 参数进行编译,如不确定可使用如下命令查看是否支持debug readelf -S filename | grep "debug" 启动调试 gdb binFile 例如要调试sshd: 调试带参数…...

qt程序在Linux下打包的一般流程

编译 手动编写编译脚本 qmake make复制依赖库 参考文章: https://blog.csdn.net/JOBbaba/article/details/124289626 https://zhuanlan.zhihu.com/p/49919048 复制系统依赖库 编写复制脚本copy.sh ldd复制Qt依赖库 主要是libqxcb.so的相关依赖需要复制&…...

华为鸿蒙应用--欢迎页SplashPage+倒计时跳过(自适应手机和平板)-ArkTs

鸿蒙ArkTS 开发欢迎页SplashPage倒计时跳过,可自适应平板和手机: 一、SplashPage.ts import { BreakpointSystem, BreakPointType, Logger, PageConstants, StyleConstants } from ohos/common; import router from ohos.router;Entry Component struct…...

spring MVC概述和土门案例(无配置文件开发)

SpringMVC 1,SpringMVC概述2,SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行项目步骤9:浏览器…...

持续集成交付CICD:K8S 通过模板文件自动化完成前端项目应用发布

目录 一、实验 1.环境 2.GitLab 更新deployment文件 3.GitLab更新共享库前端项目CI与CD流水线 4.K8S查看前端项目版本 5.Jenkins 构建前端项目 6.Jenkins 再次构建前端项目 二、问题 1. Jenkins 构建CI 流水线报错 2. Jenkins 构建CI 流水线弹出脚本报错 3. Jenkins…...

【TB作品】51单片机 实物+仿真-电子拔河游戏_亚博 BST-M51

代码工程。 http://dt4.8tupian.net/2/28880a66b12880.pg3这段代码是用于一个数字拔河游戏的嵌入式系统,采用了基于8051架构的单片机,使用Keil C51编译器。 主要功能包括: 数码管显示:使用了四个数码管(通过P2的控制…...

MyBatis ${}和#{}区别

sql防注入底层jdbc类型转换当简单类型参数$不防止Statment不转换value#防止preparedStatement转换任意 除模糊匹配外,杜绝使用${} MyBatis教程,大家可以借鉴 MyBatis 教程_w3cschool 主要区别 1、#{} 是预编译处理,${} 是直接替换&#…...

大型语言模型:RoBERTa — 一种稳健优化的 BERT 方法

slavahead 一、介绍 BERT模型的出现BERT模型带来了NLP的重大进展。 BERT 的架构源自 Transformer,它在各种下游任务上取得了最先进的结果:语言建模、下一句预测、问答、NER标记等。 尽管 BERT 性能出色,研究人员仍在继续尝试其配置&#xff0…...

webpack知识点总结(基础应用篇)

一、为什么需要webpack 1.为什么使用webpack ①传统的书写方式,加载太多脚本会导致网络瓶颈,如不小心改变JavaScript文件加载顺序,项目会崩溃,还会导致作用域问题、js文件太大无法做到按需加载、可读性和可维护性太低的问题。 ②…...

监控k8s controller和scheduler,创建serviceMonitor以及Rules

目录 一、修改kube-controller和kube-schduler的yaml文件 二、创建service、endpoint、serviceMonitor 三、Prometheus验证 四、创建PrometheusRule资源 五、Prometheus验证 直接上干货 一、修改kube-controller和kube-schduler的yaml文件 注意:修改时要一个节…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...