四、移动手机自动化测试

news2025/1/12 21:01:24

移动手机自动化测试

  • 4.1 Appium 介绍
    • 4.1.1 Appium 中的常用术语
      • 1. Session
      • 2. Desired Capabilities
      • 3. Appium Server
    • 4.1.2 Appium 服务关键字
      • Appium 服务相关参数的说明

4.1 Appium 介绍

Appium 是一个开源、跨平台的自动化测试工具,可以用来测试 Native 及混合的移动端应用,Appium 可以支持 IOS、Android 及 FirefoxOS 平台

Appium 为了实现自身提出的理念:“不必局限于某种语言或者框架来写/运行测试脚本,以及一个移动自动化的框架不应该在接口上重复造轮子”,它把 IOS、Android 等自身提供的第三方框架都封装成了一套 API,即 WebDriver

API.WebDriver(SeleniumWebDriver,Appium 对此进行了扩展)指定了客户端到服务端的协议,通过这种客户端/服务端的架构可以使用任何语言来编写客户端向服务端发送恰当的 HTTP 请求,只要 client 能够发送 http 请求给 server,那么 client 用什么语言来实现都是可以的,这就是 appium 及 webdriver 如何做到支持多语言的

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

Appium 官网
请添加图片描述

Appium 真正的工作引擎其实是第三方自动化框架:

  • iOS:苹果的UIAutomation
  • Android 4.2+:谷歌的UiAutomator
  • Android 2.3+:谷歌的Instrumentation
  • Instrumentation由单独的项目Selendroid提供支持。

4.1.1 Appium 中的常用术语

1. Session

Appium 自动化建立在一个 Session上 运行,客户端初始化一个 Session 来与服务端进行请求和交互,客户端会发送一个 POST 请求给服务端,请求中包含一个 JSON 对象,被称作 “desired Capabilities”,然后服务端就会开启一个自动化的 Session,并且返回一个 Session ID 给客户端,客户端的后续请求都会带上该 Session ID 给服务端做识别

2. Desired Capabilities

Desired Capabilities 是一些键值对的集合 (比如,一个 map 或者 hashmap),客户端将这些键值对发给服务端,告诉服务端需要怎么执行测试

比如,我们可以把 platformNamecapability 设置为 Android,告诉 Appium 服务端,我们想要一个 Android 的 Session,而不是一个 iOS 的;也可以设置 safariAllowPopupscapability 为 True,确保在 Safari 自动化 Session 中可以使用 JavaScript 来打开新窗口

3. Appium Server

Appium Server 是基于 Node.js 实现的,可以使用 NPM 直接安装

4.1.2 Appium 服务关键字

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Appium 服务相关参数的说明

请添加图片描述

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

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

相关文章

Web3中文|Reddit用户在Polygon上铸造了超500万个NFT

Reddit用户通过Collectible Avatars 计划,已经铸造了超过 500 万个NFT。 Reddit的NFT头像是在以太坊扩展网络Polygon上铸造的,大多数都是免费赠送给Reddit用户。 在NFT销量下滑和加密货币市场动荡的情况下,Reddit对NFT头像的推动是一个罕见…

Spring 之类元数据封装—MetadataReader

在 Spring 中最喜欢干的事情就是将多个参数封装到一个对象,这里就挑选一个例子讲讲——MetadataReader,这个对象是将一个类封装成了三部分:File 文件本身,类元数据,注解元数据。 MetadataReader 元数据对象 先看下这…

架构设计(四):CDN

架构设计(四):CDN 作者:Grey 原文地址: 博客园:架构设计(四):CDN CSDN:架构设计(四):CDN CDN 全称 Content delivery…

Redis面试准备

1. redis网站 Redis Redis文档中心 -- Redis中国用户组(CRUG) 数据库排名网站:DB-Engines - Knowledge Base of Relational and NoSQL Database Management Systems 2. 基础知识 磁盘中的寻址速度是毫秒级,内存中寻址速度是纳…

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-048(CVE-2017-9791)

一、漏洞编号 s2-048 CVE-2017-9791二、影响范围 Apache Struts 2.3.x系列中启用了struts2-struts1-plugin插件的版本三、漏洞描述 Apache Struts2 2.3.x 系列启用了struts2-struts1-plugin 插件并且存在 struts2-showcase 目录,其漏洞成因是当ActionMessage接收客户可控的参…

【论文精读】Focal Inverse Distance Transform Maps for Crowd Localization

文章目录摘要主要贡献主要内容一、FIDT二、LMDS三。I-SSIM loss摘要 在本文中,我们关注人群定位任务,这是人群分析的一个重要课题。基于回归的方法大多使用卷积神经网络( CNN )对密度图进行回归,在极度稠密的场景中无法准确定位实例&#xf…

跨境卖家如何以最少量的预算建立品牌知名度?

关键词:跨境卖家、品牌知名度 什么是品牌知名度? 品牌知名度反映了您的目标受众对您的品牌的了解、认可和记忆程度。 为什么品牌知名度至关重要? 当您的目标受众需要您提供的产品或服务时,您希望他们考虑您的品牌。为此&#xf…

windows下nginx隐藏HTTP 请求头文件中的Server信息

简介 本文主要是隐藏HTTP 请求头文件中的Server信息 解决问题主要分下面几步 一、准备编译所需要的环境 二、修改nginx源码改变配置 三、编译nginx源码生成新的nginx.exe 四、替换nginx.exe,重新启动nginx 1. 准备所需环境 环境都需要准备好,因为编译是…

精品spring boot+MySQL线上点餐系统vue

《spring bootMySQL线上点餐系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术: 操作系统:Windows 10、Windows 7、Windows 8 开发语言:Java 使用框架:spring boot 前端技术&#xff…

大数据毕业设计人体跌倒检测系统

文章目录前言1 实现方法传统机器视觉算法基于机器学习的跌倒检测SVM简介SVM跌倒检测原理算法流程算法效果实现代码深度学习跌倒检测最终效果网络原理最后前言 背景和意义 在美国,每年在65岁以上老人中,平均每3人中就有1人发生意外跌倒,每年…

[附源码]Node.js计算机毕业设计关于人脸识别的实验教学管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

嵌入式分享合集122

一、分析电容降压电路工作原理 电容降压电路,因其成本低廉、体积小而被广泛地使用,此一优点足以掩盖其它所有缺点:输出电流小(一般控制在100mA以内),与市电直通非隔离而存在安全隐患,输出电压波…

饥荒服务器搭建(windows)

文章目录1. 获取服务器票据2. 新建游戏存档3. 饥荒服务器配置1. 获取服务器票据 步骤1:登录Klei官网 步骤2:点击菜单栏游戏——选择饥荒服务器 步骤3:创建服务器获取票据,后面将会用到。 2. 新建游戏存档 步骤1:下载…

Python开发游戏?也太好用了吧

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 当然可以啦! 现在日常能够用到和想到的场景,绝大多数都可以用Python实现。 效果怎么样暂且不提,但是得益于丰富的第三方工具包,的确让Python能够很容易…

二进制包安装公有云版k8s

目录公有云版k8s的架构是怎样的公有云中创建k8s实例的过程如下二进制法创建k8s的一般过程Kubernetes的重要性check nodes每台服务器执行基线配置CA rootetcd HA cluster根据CA根证书创建etcd的专有CA证书将etcd注册成为systemd服务配置各master节点的etcd.confansible配置各个m…

4线SPI驱动OLED常规操作

拿到一块点阵屏幕,首先找卖家拿驱动例程 步骤 目录 1.void LCD_IO_Cfg(void) 2.void wr_cmd(u8 wrcmd) 3.void wr_data(u8 wrdata) 4.void init_lcd(void) 5.void disp_all(void) 6.void Fresh(void) 注:根据商家的时序图可以知道数据在上升沿/下降…

[附源码]Node.js计算机毕业设计高校学科竞赛报名系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

CBCC3 – A CBCC Algorithm with Improved Exploration/Exploitation Balance

0、论文背景 本文是在CBCC1和CBCC2的基础上提出了CBCC3。在本文中,证明了过度探索和过度开发是现有CBCC变体中性能损失的两个主要来源。在此基础上,提出了一种新的基于贡献的算法,可以在探索和开发之间保持更好的平衡。 Omidvar M N, Kazimi…

复现readme中的一个坑...

今天在运行一个项目的时候“Molecule Optimization via Fragment-based Generative Models”:GitHub - ninglab/Modof: The implementation of Modof for Molecule Optimization 然后妈的死活运行不出来,就是说在运行readme的时候都不行,我看…

Win10系统下与VMware中Ubuntu20.04建立共享文件夹

一、在VMware中设置 二、在Ubuntu中设置 1.在终端中输入下面命令,列出步骤一中设置的VMware共享文件夹名称,说明可以挂载 ~$ vmware-hgfsclient 返回 ubuntushare 2.执行下面命令,创建共享文件夹专用的挂载目录 ~$ sudo mkdir -p /mnt/hgfs …