appium是什么

什么是Appium

这是一个开源的自动测试框架,可以用它来操控app,测试app功能的完美性。当然,它的作用远不止这些。如果你高兴,可以用它来收能量,签到,甚至是游戏自动化。正式学习之前 ,我希望你能明白下面Appium的工作原理。

什么是WebDriver

WebDriver的设计模式是这样的:

  • Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做出响应。
  • Client端:简单来说就是我们的测试代码,测试代码中的一些行为是以HTTP请求的方式发送给被测试浏览器——Remote Server,Remote Server接受请求,执行相应操作,并在Response中返回执行状态、返回值等信息。

WebDriver工作流程是这样的:

  1. WebDriver启动目标浏览器,并绑定至指定端口xxxx,启动的浏览器实例将作为WebDriver的Remote Server。
  2. Client端通过CommandExcuter发送HTTPRequest给Remote Server的侦听端口xxxx
  3. Remote Server需要依赖原生的浏览器组件(比如:chromedriver.exe)来转化浏览器的native调用。
发送脚本
接收并执行
回复
Client
端口:123
Remote Server

两者有什么联系

Appium基于WebDriver模式,对比WebDriver,Appium的执行过程如下:

  1. PC端的测试人员将测试脚本通过json格式传递给Remote Server
  2. Remoserver启动了一个监听端口:1234, 同时向手机端adb push 一个bootstrap.jar/bootstrap.js的脚本,手机端通过该脚本同时监听端口1234。
通过JSON发送脚本
监听
发送bootstrap.js
监听
PC
Remote Server
端口:1234
移动端
  1. PC和移动端就通过这个端口实现了通信和交互,基于socket通信(一个封装了TCP/IP协议的接口)
  2. 手机端通过该端口传输的命令执行APP
  3. 执行完操作后通过端口返回给PC端,PC端根据返回结果做校验,同时也知道了操作是否执行成功

bootstrap里面封装了安卓和苹果的自动化测试框架UIautomato

socket
socket
PC
端口:1234
移动端

更进一步

下面的结构图清晰的表明了Appium的执行过程,其实它只是一个中转站:脚本传递给Appium后,Appium调用UiAutomator,ADB和ChromeDriver分别进行移动设备的UI自动化,电脑端与移动设备交互和WebView类控件的操作。

webdriver
forward
shell
forward
remote debug
脚本
Appium
UiAutomator
ADB
ChromeDriver
WebView

可以说,没有了Appium,上面的过程依旧成立

forward
shell
forward
remote debug
脚本
WebDriver
UiAutomator
ADB
ChromeDriver
WebView

WebDriver跳过Appium获取element_id的代码如下:

curl -H "Content-Type: application/json;charset=UTF-8"\http://127.0.0.1:4723/wd/hub/session/$session_id/elements \--data-binary'{"using":"xpath","value":"//*[@class=\"android.widget.Toast\ "]"}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值