appium(四)交互分析
一、简介
英文官网:appium官网
Appium跨平台、开源的自动化测试工具,支持iOS和Android平台的原生的、基于移动浏览器、混合的应用。
基于移动浏览器的应用:用移动平台的浏览器访问的应用(Appium支持IOS上的Safari和安卓上的Chrome或内嵌的“浏览器”应用)
混合应用:把基于一个WebView实现的所有功能包装成一个应用的应用,WebView是一个可以和网页各种元素交互的原生控件(译者注:因为所有的移动平台都会有浏览器,所以基于浏览器封装起来的应用就可以轻易做到跨平台了)。Phonegap这些项目可以很方便的把那些基于web技术实现的功能打封装成一个混合应用。
跨平台的意义:点击打开链接
appium不是一个新开发的框架,只是将现已有的框架进行集成,使其使用的范围更。
Appium的理念:
Appium was designed to meet mobile automation needsaccording to a philosophy outlined by the following four tenets:
- You shouldn’t have to recompile your app or modify it in any way in order to automate it.
- You shouldn’t be locked into a specific language or framework to write and run your tests.
- A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs.
- A mobile automation framework should be open source, in spirit and practice as well as in name!
二、设计:
iOS的UIAutomation和android的Instrumentation及UIAutomator采用的这些工具都是标准的平台供应商提供的框架,所以在使用的时候就不需要将任何的框架编译到app中去。
三、架构:
客户端/服务器端架构
Appium的核心是一个暴露了REST API的网络服务器。它接收客户端过来的连接,监听(客户端过来的)命令,在移动设备上运行命令,然后把代表命令运行结果的HTTP响应包发送回客户端。
四、会话:
客户端发起一个会话,发送一个包含所谓的“desired capabilities"JSON对象的Post/session的请求到服务器端。这样服务器端就会开启一个自动化会话并把会话ID发送回客户端以便往后的持续的命令传递。
五、Desired Capabilities:
Desired Capabilities是由客户端发送给Appium服务器端的用来告诉服务器去启动哪种我们想要的会话的一套键值对集合。当中也有一些键值对是用来在自动化的过程中修改服务器端的行为方式的。http://appium.io/slate/en/master/#caps.md
六、服务器:
由Node.js编写,可以通过NPM进行编译和安装。
七、客户端:
There are client libraries (in Java, Ruby, Python, PHP,JavaScript, and C#) which support Appium’s extensions to the WebDriverprotocol. When using Appium, you want to use these client libraries instead ofyour regular WebDriver client
Appium.app, Appium.exe
There exist GUI wrappers around the Appiumserver that can be downloaded. These come bundled with everything required torun the Appium server, so you don’t need to worry about Node. They also comewith an Inspector, which enables you to check out the hierarchy of your app.This can come in handy when writing tests.
八、appium 在android端工作流
1、client端也就是我们 testscript是我们的webdriver测试脚本。
2、中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟seleniumWebdriver测试框架类似, Appium⽀持标准的WebDriverJSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
3、appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来
实现。
4、最后Bootstrap将执行的结果返回给appiumserver。
5、appium server再将结果返回给appium client。
appium(四)交互分析的更多相关文章
- 手机自动化测试:appium源码分析之bootstrap十四
手机自动化测试:appium源码分析之bootstrap十四 poptest(www.poptest.cn)是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开 ...
- 手机自动化测试:appium源码分析之bootstrap四
手机自动化测试:appium源码分析之bootstrap四 Orientation是调整屏幕方向的操作 package io.appium.android.bootstrap.handler; i ...
- 手机自动化测试:appium源码分析之bootstrap三
手机自动化测试:appium源码分析之bootstrap三 研究bootstrap源码,我们可以通过代码的结构,可以看出来appium的扩展思路和实现方式,从中可以添加我们自己要的功能,针对app ...
- 手机自动化测试:appium源码分析之bootstrap二
手机自动化测试:appium源码分析之bootstrap二 在bootstrap项目中的io.appium.android.bootstrap.handler包中的类都是对应的指令类, priva ...
- 手机自动化测试:appium源码分析之bootstrap一
手机自动化测试:appium源码分析之bootstrap一 前言: poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.popte ...
- 手机自动化测试:Appium源码分析之跟踪代码分析九
手机自动化测试:Appium源码分析之跟踪代码分析九 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析八
手机自动化测试:Appium源码分析之跟踪代码分析八 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析七
手机自动化测试:Appium源码分析之跟踪代码分析七 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析六
手机自动化测试:Appium源码分析之跟踪代码分析六 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析五
手机自动化测试:Appium源码分析之跟踪代码分析五 手机自动化测试是未来很重要的测试技术,作为一名测试人员应该熟练掌握,POPTEST举行手机自动化测试的课程,希望可以训练出优秀的手机测试开发工 ...
随机推荐
- Gym - 101845K 排序+概率
The UNAL programming coaches have lost a bet, they bet the 6 UNAL teams would occupy the first six p ...
- kuangbin专题十六 KMP&&扩展KMP HDU1358 Period
For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...
- CSS+jQuery实现轮播
CSS+jQuery实现轮播 CSS jQuery 前端 实现功能: 自动轮播: 鼠标放在上面停止轮播: 鼠标放在上面显示左右切换的按钮: 鼠标放在小圆圈上显示对应的图片: 轮播效果图 style. ...
- Patting Heads
Description It's Bessie's birthday and time for party games! Bessie has instructed the N (1 < N & ...
- centos7博客的基础搭建(LNMP)
linux [root@zbb wordpress]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) nginx echo ...
- sqlserver 常用语法
sqlserver查找 table, view, column select * from information_schema.tables where table_schema='bk' sele ...
- Java字符容量capacity()方法
Java字符容量计算:比如StringBuffer sb=new StringBuffer("Good");输出 .
- Rest Framework简介 和 RESTful API 设计指南
使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...
- SpringMVC中RequetContextListener
来自:https://www.cnblogs.com/softidea/p/7068196.html 零.引言 RequetContextListener从名字结尾Listener来看就知道属于监听器 ...
- requirej入门(一)
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...