接上篇:腾讯优测Xtest工具使用笔记

下面是本人关于XTest的一些肤浅的分析思考:

1,既然XTest这么神奇,那么它到底是怎么工作的?

首先我查看桌面xtestserver文件属性,查看到其指向一个run.bat批处理文件,打开这个文件,看到如下命令:

接上篇:腾讯优测Xtest工具使用笔记_第1张图片
run.bat

  可以看到run.bat主要干了三件事:
  1)设置java_home,android_home,path环境变量(真是辛苦腾讯的同学,连环境变量配置的步骤都为使用Xtest的同学省去了,阿门);
  2)call 当前路径下xerver文件下xteststart.bat批处理文件;
  3)暂停,等待后续操作。

下面进入xteststart.bat:

接上篇:腾讯优测Xtest工具使用笔记_第2张图片
xteststart.bat

  这里设置了nodejs运行环境变量,开启了npm。
  结合控制台输出:XTestServer

接上篇:腾讯优测Xtest工具使用笔记_第3张图片
image.png

大致可以看出,这一步开启了远程云主机,这个时候我们就可以通过http://localhost:3000  控制台进行操作了。

接下来我们打开\xserver\public\index.html,这个界面就是控制台的首页:

接上篇:腾讯优测Xtest工具使用笔记_第4张图片
Xtext控制台的首页

这里做了些js库和组件引入的工作。

那么控制台操作入口在哪里在哪里呢?答案是angularApp.js

你问我是怎么找到的,看下面(嘿嘿,捂脸)

接上篇:腾讯优测Xtest工具使用笔记_第5张图片
angularApp.js

好了,既然找到了控制台操作入口,后面的内容就按图索骥以后再慢慢分析吧。

至此,我们的理解比较肤浅,简单总结一下,XTest是怎么工作的呢?
首先,这套工具为我们配置了java、android、nodejs运行环境,并通过nodejs搭建远程云平台为我们提供后台服务支持,同时为还我们提供了可视化的后台控制界面,通过安装Xtest.apk到手机,从而实现通过http协议和远程云平台的通信。

2,作为Android开发底层工作者,到这里我就比较好奇,Xtest.apk在我们手机上到底干了些什么?
接上篇:腾讯优测Xtest工具使用笔记_第6张图片
Xtest.apk

既然找到了人家的apk在哪里,下面我们就进行反编译,要是能挖到宝呢?谁知道呢?(开心)此处反编译省略省略省略,作为Android开发底层工作者,黑科技好好练练。(嘿嘿)

很不幸,人家进行了代码混淆和加密,将apk文件完全转化成了hex,这玩意怎么读怎么解(捂脸)。

接上篇:腾讯优测Xtest工具使用笔记_第7张图片
image.png

那下面我们就开始猜吧:
  首先,打开Xtest app,选择待测应用,点击开始录制脚本后,神奇的打开了我们的待测应用,在应用右中贴边的位置出现悬浮按钮,点击悬浮按钮,便开始录制自动测试脚本,此处申请了悬浮按钮权限,别问我怎么知道的,请问你不申请怎么使用悬浮按钮呢。
  此时Xtest就开始记录用户的操作了,此时XTest就开始了它繁忙的录屏工作了。
  回答上一篇的第二个坑,为什么5.0以下需要root,以上不需要呢?因为使用悬浮按钮和录屏5.0以下需要root权限以上不需要啊!
接下来Xtest app的工作无非就是获取屏幕和用户输入信息,记录并上传服务器,BABALA的。

3,现在你有没有好奇,XTest自动测试脚本到底是怎么工作的呢?反正我比较好奇。
接上篇:腾讯优测Xtest工具使用笔记_第8张图片
testcase code

看代码,以下是对XTest生成的testcase code的简单分析:
  tap:点击 id-tab2,text-海淘,元素树->....TextView元素;
  sleep:睡一会(延时);
  tscoll:滑动 监听到手指从x,y(646,1296)滑动到x,y(1000,523)像素点(这是一个从左下到右上的滑动操作),当前屏幕分辨率为1080x1920。

下面的内容也是连蒙带猜:

上面的testcase code跟python编写的testcase code很类似,是另一种脚本语言还是进行了封装呢?母鸡。
  获取Android屏幕信息,监听用户操作怎么做到呢?由于在xserverpublic下没有找到hierarchyviewer工具,所以我猜想XTest使用的是类似facebook stetho的hierarchyviewer工具或者对hierarchyviewer进行了一些改造。

  至此我们进行一下大致的总结了,XTest究竟干了什么,使我们自动化测试变得如此便捷可行呢?
  XTest通过提供远程云平台和可视化界面,为我们提供后台服务支持,通过Xtest app录制屏幕信息监听用户操作,使用hierarchyviewer工具获取屏幕信息,并将用户操作记录和转化为自动测试脚本,上传和保存到远程云平台,从而实现了一套完整高效便捷自动测试脚本录制和测试工作。

你可能感兴趣的:(接上篇:腾讯优测Xtest工具使用笔记)