APPium简介及安装

1 APPium简介

1. 什么是APPium?

APPium是一个开源测试自动化框架,适用于原生、混合或移动Web应用程序的自动化测试工具。 APPium使用WebDriver协议驱动iOS、Android等应用程序。

2. APPium的特点

支持多平台(Android、iOS等)

支持多语言(python、java、ruby、js、c#等)

APPium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

APPium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么client用什么语言来实现都是可以的,这就是如何做到支持多语言的原因;

APPium基于WebDriver协议,并进行了扩展。这样的好处是可以直接继承WebDriver API,Selenium(WebDriver)各种语言的binding都可以直接拿来使用,省去了为每种语言开发一个client的工作量。

Appium的哲学:不需要重新编译或者修改应用;不被一种语言或者框架约束;不重复造轮子;开源免费

3. APPium工作原理
在这里插入图片描述

APPium是C/S架构的。 左边是客户端的测试脚本,中间的APPium server是基于webdriver协议添加对移动设备自动化API扩展而成的。右边的Bootstrap.jar是APPium 在初始化时推送到Android手机上的一个UiAutomator测试脚本;

APPium首先在服务端开启一个监听4723端口的server,接收测试脚本发送过来的对应请求,再将对应的请求发送给中间件Bootstrap.jar;

Bootstrap监听4724端口由APPium发送过来的相关请求,并将请求转换成UiAutomator可以识别的命令发给UiAutomator进行处理,实现自动化测试;

最后Bootstrap将执行的结果返回给APPium Server,APPium Server再将测试结果返回给客户端。

2 安装APPium

安装APPium总体需要以下步骤:安装JDK,Android SDK,APPium-Python-Client包,NodeJS,以及APPium安装包,以下依次介绍各软件的安装过程。

2.1 JDK环境

1.官网下载JDK并安装
下载网址:https://www.oracle.com/java/technologies/javase-downloads.html

2.配置环境变量
在这里插入图片描述

验证JDK环境变量已经配置好:
在这里插入图片描述
2.2 Android环境

3.官网下载Android SDK

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

在这里插入图片描述

2) 解压缩后,执行SDK Manager.exe 安装 tools, platform-tools,build-tools

设置环境变量
设置ANDROID_HOME路径为Android-SDK的安装目录,并将tools, platform-tools及build-tools添加到环境变量。

在这里插入图片描述
4)验证:
在这里插入图片描述
2.3 Python环境

4.官网下载python,安装并设置环境变量

a) 下载网址:https://www.python.org/downloads/

b) 安装完成之后配置python环境变量

如下图,设置PYTHON_HOME为Python的安装路径,并将PYTHON_HOME及其路径下的Scripts添加到path环境变量

在这里插入图片描述

验证Python环境变量设置成功
在这里插入图片描述

  1. 安装python客户端Appium-Python-Client,使用pip命令自动安装:

pip install Appium-Python-Client

2.4 NodeJS安装
下载网址: https://nodejs.org/en/

下载完成后,直接点击应用程序,按照默认选项一键安装。

安装完成之后,添加环境变量
在这里插入图片描述

验证nodeJS安装成功

在这里插入图片描述
2.5 Appium安装

  1. 官网下载APPium安装包,

下载网址: https://github.com/appium/appium-desktop/releases/tag/v1.20.0

  1. 下载完成后,一键安装

  2. 启动Appium
    在这里插入图片描述

  3. 设置JDK和Android路径,保存并重启。

在这里插入图片描述
重启后,点击”Star Server v1.20.0”, 出现如下画面,则表明appium server已经正常启动,可以开始真机测试了
在这里插入图片描述

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

Spring Cache简明教程

Spring Cache简明教程 引言什么是Spring Cache?核心特性应用场景如何工作 如何使用1. 添加依赖2. 启用缓存3. 配置缓存4. 使用缓存注解 使用缓存的注意事项缓存的数据序列化缓存键的生成缓存内容的一致性缓存的并发问题缓存穿透缓存雪崩缓存的存储容量方法的可见性和…

uniapp组件库Card 卡片 的使用方法

目录 #平台差异说明 #基本使用 #配置卡片间距 #配置卡片左上角的缩略图 #配置卡片边框 #设置内边距 #API #Props #Slot #Event 卡片组件一般用于多个列表条目,且风格统一的场景。 #平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程…

基于STM32的以太网通信协议选择与实现

在基于STM32的以太网通信中,主要涉及到选择合适的通信协议和实现对应的功能代码。常见的通信协议包括TCP/IP、UDP、HTTP等,选择合适的协议取决于具体应用需求。以下将介绍在STM32上进行以太网通信时,常用的通信协议选择以及对应功能代码的实现…

CSDN·COC城市开发者组织2023年度聚会上海站纪实

目录 前言活动宣传活动议程活动总结结束语 前言 2023年是CSDNCOC成立之年,经过一年的不断发展和壮大,COC上海城市开发者社区的队伍不断壮大,本着每个月都有线下活动的原则,先后举办大大小小的线下沙龙活动20余场。与此同时&…

洛谷p1157组合的输出

组合的输出 题目描述 排列与组合是常用的数学方法,其中组合就是从 n n n 个元素中抽出 r r r 个元素(不分顺序且 r ≤ n r \le n r≤n),我们可以简单地将 n n n 个元素理解为自然数 1 , 2 , … , n 1,2,\dots,n 1,2,…,n&a…

NRZ Modulation

NRZ Modulation 正文简介NRZ 的优势 正文 简介 全称不归零 non-return to zero(NRZ) 调制。代表了使用两个信号等级的一种逻辑信号。一个等级为 1,一个等级为 0。负电压对应逻辑电路中的 0,正电压对应逻辑电路中的 1。对于 NRZ 传输,波特率…

trucksim三车队列仿真 matlab一直闪退问题

Trucksim2019 matlab版本2023a 基本框架应该都清楚 下图是主界面 overlay videos and polots with other runs 模块是 关联另一个车辆模型 核心是下图标红是核心 Number of vehicle codes 选择ALL 不要选

如何解决云计算中的性能和延迟问题?

随着云计算的普及,越来越多的企业开始将业务迁移到云端。然而,随着业务的发展和数据量的增长,云计算中的性能和延迟问题也逐渐凸显出来。这些问题不仅会影响用户体验,还会对企业的业务发展造成负面影响。因此,如何解决…

第1章 领域驱动设计的背景和来源

第1章 领域驱动设计的背景和来源 1-1 DDD课程导学1-2 DDD的核心思想和解决的痛点问题1-3 面向对象和敏捷与DDD的区别与联系1-4 DDD的过去、现在与未来 1-1 DDD课程导学 所以大家好,我是尤达,欢迎来到我们深入领域驱动设计。 这门课程。 从我们的副标题结…

世微AP5151芯片低压差 线性降压 恒流驱动IC 台灯 指示灯 矿灯

概述 AP5151 是一种低压差、线性降压、 固定输出电流的 LED 恒流驱动器。 除 LED 外,AP5151 无需外接其它元 器件即可构成一个恒流输出的 LED 驱动 电路。 AP5151 内置过热保护功能,可有效 保护芯片,避免结温超过 120oC 时因过热 而造成损坏…

java后端远程调用文件上传接口(multipart/form-data类型)的方法

multipart/form-data是一种用作传输多个文件/表单项的数据格式。 一、http请求配置 /*** HttpClientConfig http请求配置*/ public class HttpClientConfig {/*** 连接时间 ms*/protected int CONNECT_TIMING_OUT 300000;/*** 请求响应时间 ms*/protected int RESPONSE_TIMI…

【图形学】双三次贝塞尔曲线绘制方法

双三次贝塞尔曲线的定义 双三次贝塞尔曲面是由16个控制点定义的曲面,通常表示为4x4矩阵。 曲面的公式如下: p ( u , v ) ∑ i 0 3 ∑ j 0 3 P i , j B i , 3 ( u ) B j , 3 ( v ) , ( u , v ) ∈ [ 0 , 1 ] [ 0 , 1 ] p(u,v)\sum_{i0}^3\sum_{j0}…

【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson10(电话会话Ⅱ)

《美语从头学初级入门篇》 注意:被 删除线 划掉的不一定不正确,只是不是标准答案。 文章目录 Lesson 10 Telephone Conversation Ⅱ 电话会话(二)会话A会话B笔记I would like to do(Id like to to do)我想…

如何从视频号中提取视频的文案?抖音文案也可提取

最近不少小伙伴刷抖音看看视频一个一个的进行抄,太慢了。​今天分享一个工具搞定怎么提取视频文案的方法! 提取文案小助手 提取文案小助手是专注视频创作者的利器,帮助用户一键提取视频号中的文案,获取的方式比较简单&#xff0c…

知过去,预未来,相信AI计算的力量

过去几十年来,人工智能(AI)领域取得了巨大的进展,从最初的概念逐渐演变为影响各个行业的核心技术。回顾过去,我们可以看到AI计算在推动科技创新和社会变革方面的无可比拟的力量。而更为令人振奋的是,这种力…

Sui TVL跻身全链前十名|全面详解Sui原生功能如何促使DeFi蓬勃发展

根据DefiLlama数据显示,1月28日Sui TVL超过4.02亿美元,跻身所有区块链TVL前十名! Sui的创新应用原生功能为DeFi应用铺平了道路,为用户提供了良好的体验。每个原生功能,从促进高效的共享流动性到简化用户互动&#xff0…

js中contextmenu、click和mousedown的区别在哪?

contextmenu、click和mousedown的定义 contextmenu:在鼠标右键点击时触发。可以在此事件中执行特定的操作,比如显示自定义的右键菜单或者阻止浏览器默认的上下文菜单弹窗。它是为了满足特定场景下对右键点击的定制化处理需求。 click事件是通用的鼠标点…

印章制作办法

印章制作办法: 最近在做单位技术支持的培训,需要增加个培训章,自己内容完成即可。 一、excel表格中 ,插入-形状-圆(按住shift按键) 操作三步: 1.填充 无 : 2.形状轮廓 ---“红色…

Linux之常见的管理命令

目录 1. whoami 2. hostname 3. uname 4. date 5. alias 6. history 7. sudo 8. systemctl 9. ps 1. whoami 作用: 显示出当前有效的用户名称语法:whoami(选项)选项: --help:在线帮助--version:显示版本信息…

CF1920F1 Smooth Sailing (Easy Version) 题解

魔幻暴力题。 题意简述 给你一张 n m n\times m nm 的地图,每个点是海 .,岛屿 # 或者火山 v。保证岛屿和非岛屿均可以形成恰好一个四连通块且岛屿不与地图边界接壤,至少有一个岛屿点与一个火山点。 定义一条合法的路径为,从一…