百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

APP自动化测试系列之Appium介绍及运行原理

yuyutoo 2024-10-12 01:25 3 浏览 0 评论

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。

Appium介绍

Appium概念

Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS,Android和Windows应用程序。

Appium特点

  • Appium是开源的移动端自动化测试框架;
  • Appium可以测试原生的、混合的、以及移动端的web项目;
  • Appium可以测试IOS,Android应用;
  • Appium是跨平台的,可以用在osx,windows以及linux桌面系统上;
  • Appium支持Ruby、Python、Java、JavaScript、Objective C、php等多种语言。

Appium理念

Appium 旨在满足移动端自动化需求的理念,概述为以下四个原则:

  1. 你不应该为了自动化而重新编译你的应用或以任何方式修改它。
  2. 你不应该被限制在特定的语言或框架上来编写运行测试。
  3. 移动端自动化框架不应该在自动化接口方面重造轮子。
  4. 移动端自动化框架应该开源,在精神、实践以及名义上都该如此。

Appium组件

  • Appium Server
    Appium是一个C/S结构,包括Server和Client。Appium Server是Appium的服务端,作为一个Web接口服务,使用Node.js实现。
  • Appium Desktop
    Appium Server的图像界面,可设置启动or停止服务器、查看日志,可使用inspect查看应用程序的元素。
  • Appium GUI
    是Appium Desktop的前身,也是把Appium Server封装成一个图像界面。该产品的Windows版本在2015年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的Appium版本,而是1.4.16版本。如果要使用最新的桌面版需要使用Appium Desktop。
  • Appium Client
  • Appium Client作为客户端,会给服务端Appium Server端发送请求会话来执行自动化任务。类似使用浏览器访问网页,可使用不同的客户端浏览器(IE/Firefox/Chrome...)访问同一个网站,通过操作发送请求到服务器来获取数据。

二 Appium运行原理

Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:

  • Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。
  • Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
  • iOS:UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。



运行原理如下:

①客户端运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求,请求内容就是根据webdriver wire protocol协议规定的一条JSON格式的数据;

②当开启appium服务器的同时就开启了监听端口,Appium Server端接收到请求后,解析出JSON数据并发送到手机端;

③手机端上已经由BootStrap.jar(iOS为BootStrip.js)开启的socket服务器监听相应的端口,BootStrap.jar在appium每个session第一次访问手机端的时候会自动安装;

④手机端接收到对应的请求后,通过BootStrap.jar翻译成UIAutomator能执行的命令,然后通过UIAutomator处理并操作APP完成测试。

三 Appium中的几个重要概念

client

其实就是发起 command 的一端,狭义的可以理解为python、java等编写的代码。

appium server:

专门用来监听并接收来自client端的请求,转发请求并控制移动设备执行测试,默认开启并监听4723接口.。

Session

session就是一个会话,在appium中,所有工作永远都是在session start后才可以进行的。而要启动一个 session 需要传入 Desired Capabilities 获取一个全局唯一的 session id,这个id指定了你的浏览器或者移动设备。

Desired Capabilities

是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。

它告诉 appium server 这样一些事情:

  • 本次测试是启动浏览器还是启动移动设备?
  • 是启动 Andorid 还是启动 iOS ?
  • 启动 Android 时,App 的 package 是什么?
  • 启动 Android 时,App 的 Activity 是什么?

Desired Capabilitie后续文章会详细介绍。

Bootstrap:

首先,bootstrap是uiautomator的测试脚本,它的入口类bootstrap继承于UiautomatorTestCase,所以Uiautomator可以正常运行它,它也可以正常使用uiautomator的方法,这是就是appium的命令可以转换成uiautomator的关键;

其次,bootstrap是一个socket服务器,专门监听4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理;

最后,bootstrap处理的是从PC端传过来的命令。

appium的架构原理如图所示,由客户端和服务端组成,客户端与服务端通过JSON进行通信。

相关推荐

史上最全的浏览器兼容性问题和解决方案

微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...

平面设计基础知识_平面设计基础知识实验收获与总结
平面设计基础知识_平面设计基础知识实验收获与总结

CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...

2025-02-21 16:01 yuyutoo

写作排版简单三步就行-工具篇_作文排版模板

和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...

写一个2048的游戏_2048小游戏功能实现

1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...

今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……

  最近的天气暖和得让很多小伙伴们喊“热”!!!  昨天的气温到底升得有多高呢?你家有没有榜上有名?...

CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式

之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...

柠檬科技肖勃飞:大数据风控助力信用社会建设

...

你的自我界限够强大吗?_你的自我界限够强大吗英文

我的结果:A、该设立新的界限...

行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?

行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...

让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华

去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...

2025-02-21 16:00 yuyutoo

今年国家综合性消防救援队伍计划招录消防员15000名

记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...

一起盘点最新 Chrome v133 的5大主流特性 ?

1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...

竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使

style="text-align:center;"data-mce-style="text-align:...

学物理能做什么?_学物理能做什么 卢昌海

作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...

你不知道的关于这只眯眼兔的6个小秘密
你不知道的关于这只眯眼兔的6个小秘密

在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...

2025-02-21 16:00 yuyutoo

取消回复欢迎 发表评论: