一种安卓应用自动抓包方法与流程

文档序号:20112932发布日期:2020-03-17 19:24阅读:894来源:国知局
一种安卓应用自动抓包方法与流程

本发明属于移动互联网技术领域,具体涉及一种安卓应用自动抓包方法。



背景技术:

随着移动互联网技术的飞速发展,智能移动终端设备的广泛普及,网络应用程序的开发需求也与之俱增,且需要适时更新迭代,这就需要对大量不同类型的网络应用,例如app、公众号、小程序等进行抓包测试,以分析应用程序的稳健性及可用性。

抓包是对网络应用程序进行可用性测试的常规分析手段,常规做法是手工下载安装应用,点击应用程序的页面,或者编写测试用例,通过fiddler或charles等网络代理服务器截获url请求和响应,观察后端网络数据加载情况,这些方法较为费时费力,难以获得系统准确的测试报告。

现有技术具有如下技术缺陷:

1)对安卓应用进行自动化遍历需要针对单个app开发测试脚本,不同的app需要不同的脚本。

2)对不同机型的兼容性存在问题。

3)无法对安卓应用内部页面进行分级分析,无法获得层次分明的结构树。

4)无法对不同位置的页面元素进行精准识别,遍历时存在多次点击指向同一个跳转页面的情况,且无法控制不同页面的点击覆盖度。

5)无法有效的识别安卓应用遍历过程中出现的多种弹框,导致自动化程序逻辑错误无法正确运行。

6)不能将页面元素的描述信息与其点击后加载的网络请求数据及页面进行关联。



技术实现要素:

本发明的目的是提供一种安卓应用自动抓包方法,以解决上述技术问题。

本发明提供了一种安卓应用自动抓包方法,包括:

步骤1,根据提供的安装包下载链接,自动下载安装包到本地,解析出其签名信息后安装至移动设备;

步骤2,通过atx服务层打开app并与之进行通信;

步骤3,进入首页页面后,自动分析出页面的结构信息;所述结构信息包括首页的顶部设备信息边界、头部页面描述信息边界、底部菜单元素边界、次级页面的顶部设备信息边界,头部页面描述信息边界,中部页面边界;

步骤4,在首页的底部边界解析出一级菜单元素,在中部边界基于属性、位置、大小信息综合分析获取二级元素,存入队列;

步骤5,以深度优先的策略逐个点击元素,解析新的页面,获取新的元素并加入队列,直到所有页面全部遍历完成为止。

与现有技术相比本发明的有益效果是:

1)采用一套程序即实现了对所有的原生安卓应用的自动化测试。

2)自动解析不同机型的app页面大小,分析页面长度、宽度、顶部及底部范围,从而正确的解析不同位置的元素。

3)自动解析安卓应用页面,分析一级菜单元素,二级菜单元素等及其所属页面,可构建出完整的页面结构层级图。

4)可对页面进行分类控制,不同类型的页面的元素解析逻辑不同,实现了精准点击,避免了无效点击。

5)实现了多种弹框处理逻辑,可保障自动化遍历的稳定完整进行。

6)能够将页面元素的描述信息与其点击后加载的网络请求数据及页面进行关联。

附图说明

图1是本发明程序原理图;

图2是本发明一实施例中app首页结构示意图;

图3为本发明一实施例中app次级页面结构示意图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

自动抓包程序由python语言开发,通过atx自动化测试框架操作真机或者模拟器上的安卓原生应用,通过mitmproxy网络代理服务器获取网络请求数据,页面描述信息和网络加载信息同步保存至本地文件,图1所示为自动抓包程序的原理图。

自动抓包程序首先根据提供的安装包下载链接,自动下载安装包到本地,解析出其签名信息后安装至移动设备,通过atx服务层打开app并与之进行通信。进入首页页面后,自动分析出页面的结构信息,如图2所示,分别解析出首页的顶部设备信息边界,头部页面描述信息边界,底部菜单元素边界等。如图3所示,分别解析出次级页面的顶部设备信息边界,头部页面描述信息边界,中部页面边界等。自动抓包程序在首页的底部边界解析出一级菜单元素,在中部边界基于属性、位置、大小等信息综合分析获取二级元素,存入队列,随后以深度优先的策略逐个点击元素,解析新的页面,获取新的元素并加入队列,直到所有页面全部遍历完成为止。

对安卓应用进行自动化测试,常用的自动化测试框架有appium和atx两种,均可接收测试用例命令并执行移动端操作,appium支持多种编程语言开发测试用例,atx仅支持python一种语言,但后者启动速度较快,且运行更为稳定。本发明采用atx框架,该框架封装了谷歌自带的uiautomator2测试框架,提供便利的python接口,pc上编写python的测试代码,操作手机应用,大大提高了自动化代码编写允许测试人员直接在的效率。本发明所用atx测试框架可用appium替代,其他部分无可替代。

通过本发明可以批量下载安装应用程序,解析页面形成分级元素结构,并以深度优先的策略逐个进行点击,从而将人从繁琐操作,记录点击元素描述信息并自动保存网络数据,从而形成前端点击操作与后台url响应相关联的测试报告。

本发明采用一套程序即实现了对所有的原生安卓应用的自动化测试。该程序可同时操作若干台手机进行测试的重复性操作中解放出来,极大的提高了测试工作的准确性和时效性,同时也降低了公司对测试人员的人数及能力要求。本发明独特的页面元素解析方法,队列元素寻址定位方法、弹框处理方法,使得程序可实现微信小程序、微信公众号、安卓原生app的全自动化遍历,不需人工操作。本发明通过atx获取安卓应用页面元素描述信息,通过mitmproxy获取网络响应数据,从而实现了两者之间的关联。具体包括如下技术效果:

1)基于不同页面分级的元素解析逻辑,使得自动遍历时避免了无效点击,提高了程序运行效率。

2)对自动遍历过程中的页面和元素的特征值分别进行哈希,存入已遍历表,防止了重复点击。

3)基于页面及元素哈希值进行页面定位的队列新元素寻址定位方法,能够保障自动遍历顺利进行。

4)基于页面及元素哈希值进行页面定位的队列新元素寻址定位方法,能够保障自动遍历顺利进行。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1