CN110888807A - 一种安卓应用自动抓包方法 - Google Patents
一种安卓应用自动抓包方法 Download PDFInfo
- Publication number
- CN110888807A CN110888807A CN201911121861.4A CN201911121861A CN110888807A CN 110888807 A CN110888807 A CN 110888807A CN 201911121861 A CN201911121861 A CN 201911121861A CN 110888807 A CN110888807 A CN 110888807A
- Authority
- CN
- China
- Prior art keywords
- page
- boundary
- information
- analyzing
- installation package
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000009434 installation Methods 0.000 claims abstract description 16
- 238000012360 testing method Methods 0.000 abstract description 16
- 238000004458 analytical method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 241000208306 Apium Species 0.000 description 3
- 238000013515 script Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种安卓应用自动抓包方法,包括:根据提供的安装包下载链接,自动下载安装包到本地,解析出其签名信息后安装至移动设备;通过atx服务层打开app并与之进行通信;进入首页页面后,自动分析出页面的结构信息;所述结构信息包括首页的顶部设备信息边界、头部页面描述信息边界、底部菜单元素边界、次级页面的顶部设备信息边界,头部页面描述信息边界,中部页面边界;在首页的底部边界解析出一级菜单元素,在中部边界基于属性、位置、大小信息综合分析获取二级元素,存入队列;以深度优先的策略逐个点击元素,解析新的页面,获取新的元素并加入队列,直到所有页面全部遍历完成为止。本发明极大地提高了测试工作的准确性和时效性。
Description
技术领域
本发明属于移动互联网技术领域,具体涉及一种安卓应用自动抓包方法。
背景技术
随着移动互联网技术的飞速发展,智能移动终端设备的广泛普及,网络应用程序的开发需求也与之俱增,且需要适时更新迭代,这就需要对大量不同类型的网络应用,例如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)基于页面及元素哈希值进行页面定位的队列新元素寻址定位方法,能够保障自动遍历顺利进行。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
Claims (1)
1.一种安卓应用自动抓包方法,其特征在于,包括:
步骤1,根据提供的安装包下载链接,自动下载安装包到本地,解析出其签名信息后安装至移动设备;
步骤2,通过atx服务层打开app并与之进行通信;
步骤3,进入首页页面后,自动分析出页面的结构信息;所述结构信息包括首页的顶部设备信息边界、头部页面描述信息边界、底部菜单元素边界、次级页面的顶部设备信息边界,头部页面描述信息边界,中部页面边界;
步骤4,在首页的底部边界解析出一级菜单元素,在中部边界基于属性、位置、大小信息综合分析获取二级元素,存入队列;
步骤5,以深度优先的策略逐个点击元素,解析新的页面,获取新的元素并加入队列,直到所有页面全部遍历完成为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121861.4A CN110888807B (zh) | 2019-11-15 | 2019-11-15 | 一种安卓应用自动抓包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121861.4A CN110888807B (zh) | 2019-11-15 | 2019-11-15 | 一种安卓应用自动抓包方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888807A true CN110888807A (zh) | 2020-03-17 |
CN110888807B CN110888807B (zh) | 2024-04-26 |
Family
ID=69747678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911121861.4A Active CN110888807B (zh) | 2019-11-15 | 2019-11-15 | 一种安卓应用自动抓包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888807B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148304A (zh) * | 2020-09-25 | 2020-12-29 | 贝壳技术有限公司 | 实现应用apk包支持网络代理的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105471664A (zh) * | 2014-08-19 | 2016-04-06 | 中兴通讯股份有限公司 | 一种自动抓包方法及装置 |
US20180181409A1 (en) * | 2016-12-27 | 2018-06-28 | Korea Advanced Institute Of Science And Technology | Method and apparauts for accelerating loading of mobile application content |
CN108572913A (zh) * | 2018-02-26 | 2018-09-25 | 挖财网络技术有限公司 | 在安卓客户端UI自动化过程中定位App首页的方法、装置和应用 |
CN110309065A (zh) * | 2019-06-03 | 2019-10-08 | 平安科技(深圳)有限公司 | 测试任务的并发执行方法、装置、设备及存储介质 |
CN110351259A (zh) * | 2019-06-28 | 2019-10-18 | 深圳数位传媒科技有限公司 | 一种基于网络抓包获取app认证信息的方法及装置 |
-
2019
- 2019-11-15 CN CN201911121861.4A patent/CN110888807B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105471664A (zh) * | 2014-08-19 | 2016-04-06 | 中兴通讯股份有限公司 | 一种自动抓包方法及装置 |
US20180181409A1 (en) * | 2016-12-27 | 2018-06-28 | Korea Advanced Institute Of Science And Technology | Method and apparauts for accelerating loading of mobile application content |
CN108572913A (zh) * | 2018-02-26 | 2018-09-25 | 挖财网络技术有限公司 | 在安卓客户端UI自动化过程中定位App首页的方法、装置和应用 |
CN110309065A (zh) * | 2019-06-03 | 2019-10-08 | 平安科技(深圳)有限公司 | 测试任务的并发执行方法、装置、设备及存储介质 |
CN110351259A (zh) * | 2019-06-28 | 2019-10-18 | 深圳数位传媒科技有限公司 | 一种基于网络抓包获取app认证信息的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148304A (zh) * | 2020-09-25 | 2020-12-29 | 贝壳技术有限公司 | 实现应用apk包支持网络代理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110888807B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018010552A1 (zh) | 测试方法和装置 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CN109885480B (zh) | 一种基于调试桥的自动化界面兼容性测试方法及装置 | |
CN107302476B (zh) | 一种测试异步交互系统的自动化测试方法与系统 | |
CN111427765B (zh) | 自动开启基于jmeter实现的接口性能测试方法和系统 | |
CN104424093A (zh) | 一种兼容性测试方法及系统 | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN103399814A (zh) | 自动化测试的方法及装置 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
CN107704389B (zh) | 一种页面测试方法及装置 | |
CN112506778A (zh) | Web用户界面自动化测试方法、装置、设备和存储介质 | |
US20120185823A1 (en) | System and method for self dependent web automation | |
CN107038117B (zh) | 一种基于事件处理函数间定义-引用的web自动化测试方法 | |
CN113126993B (zh) | 应用于车辆检测软件的自动化测试方法及其系统 | |
CN110888807B (zh) | 一种安卓应用自动抓包方法 | |
CN109697164A (zh) | 浏览器中调起App的测试方法、装置、存储介质及终端 | |
CN114090436A (zh) | 测试方法及装置 | |
CN106445810A (zh) | 一种交互式软件与设备兼容性的测试方法及系统 | |
CN111881056A (zh) | 一种自动化测试框架及测试方法 | |
CN116719735A (zh) | 一种测试用例生成方法及装置 | |
CN109344064B (zh) | 一种应用远程调试方法 | |
CN114385514A (zh) | 一种检测网页元素的方法、设备及存储介质 | |
CN114647588A (zh) | 接口测试方法及装置 | |
CN113836036A (zh) | 浏览器兼容性自动化测试方法、系统、设备及存储介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |