前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序自动化方案之准备

微信小程序自动化方案之准备

作者头像
用户5521279
发布2019-07-30 17:07:53
1.4K0
发布2019-07-30 17:07:53
举报
文章被收录于专栏:搜狗测试
Appium加载的过程图解
Appium加载过程

  • 调用Android adb完成基本的系统操作
  • 向Android上部署Bootstrap.jar
  • Bootstrap.jar Forward Android的端口到PC机器上
  • PC上监听端口接收请求,使用Webdriver协议
  • 分析命令并通过Forward的端口发给Bootstrap.jar
  • Bootstrap.jar接收请求并把命令发给Uiautomator
  • Uiautomator执行命令
Appium工作过程

  • Appium的C/S模式

  • Appium是基于Webdriver协议添加对移动设备自动化api扩展而成的,所以具有和Webdriver一样的特性,比如多语言支持
  • Webdriver是基于http协议的,第一连接会建立一个Session会话,并通过Post发送一个Json告知服务端相关测试信息
  • 对于Android来说,4.2以后是基于Uiautomator框架实现查找注入事件的,4.2以前则是Instrumentation框架的,并封装成一个叫Selendroid提供服务
  • 客户端只需要发送Http请求实现通讯,意味着客户端就是多语言支持的
  • Appium服务端是Node.js写的,所以你安装的时候无论哪个平台都是先装node,然后通过npm install -g appium命令安装Appium工具
BootStrap介绍

  • Bootstrap作用: Bootstrap是Appium运行在安卓目标测试机器上的一个UiAutomator测试脚本,该脚本的唯一一个所做的事情是在目标机器开启一个socket服务器来把一个session中Appium从PC端过来的命令发送给UiAutomator来执行处理。 它会监听4724端口获得命令然后pass给UiAutomator来做处理。
  • Bootstrap在appium中扮演的角色: 首先,Bootstrap是uiautomator的测试脚本,它的入口类bootstrap继承于UiautomatorTestCase,所以Uiautomator可以正常运行它,它也可以正常使用uiautomator的方法,这个就是appium的命令可以转换成uiautomator命令的关键; 其次,bootstrap是一个socket服务器,专门监听4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理; 最后,bootstrap处理的是从pc端过来的命令,而非一个文件。
所使用的技术

Android上使用了instrumentation和uiautomator两套技术 iOS使用uiautomation 同时还支持firefox, 并可扩展其他平台 默认开启4723端口接受webdriver请求 ,4723是appium服务的,专门和脚本打交道; 默认开启4724用于和Android设备通讯

Desired Capabilities

Capabilities是由客户端发送给Appium服务器端,用来告诉服务器去启动哪种我们想要的会话的一套键值对集合。当中也有一些键值对是用来在自动化的过程中修改服务器端的行为方式。可理解成是java里的map,python里的字典,ruby里的hash以及js里的json对象。实际上Desired Capabilities在传输时就是json对象。 Desired Capabilities最重要的作用是告诉Server本次测试的上下文。客户端将这些键值对发给服务端,告诉服务端我们想要启动怎样的自动化Session。根据不同的Capabilities 参数,服务端会有不同的行为。

代码语言:javascript
复制
capabilities.setCapability("platformName capability","Android");
问题总结
  • 服务端和设备如何通讯? 服务端和设备默认使用4724端口进行通讯的,底层调用Uiautomator工具,在测试的时候服务端会给设备扔一个jar包就是bootstrap.jar,会启动这个包,启动之后会在手机上创建一个Socket服务,暴露的就是4724的端口;相对于Socket服务来说,Appium服务端又是一个客户端; 服务端的4724可以修改,设备上的不可以;服务端收到脚本传递过来的命令之后,通过电脑上的4724端口,向设备上的4724端口发送指令,bootstrap.jar收到指令后回去完成点击,滑动其他的操作,完成之后再通过服务给服务端一个相应。服务端收到之后再去相应脚本
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Appium加载的过程图解
  • Appium加载过程
  • Appium工作过程
  • BootStrap介绍
  • 所使用的技术
  • Desired Capabilities
  • 问题总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档