CN110888807A - 一种安卓应用自动抓包方法 - Google Patents

一种安卓应用自动抓包方法 Download PDF

Info

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
Application number
CN201911121861.4A
Other languages
English (en)
Other versions
CN110888807B (zh
Inventor
盛森
闰从林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Jinzhiqu Information Technology Co Ltd
Original Assignee
Suzhou Jinzhiqu Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Jinzhiqu Information Technology Co Ltd filed Critical Suzhou Jinzhiqu Information Technology Co Ltd
Priority to CN201911121861.4A priority Critical patent/CN110888807B/zh
Publication of CN110888807A publication Critical patent/CN110888807A/zh
Application granted granted Critical
Publication of CN110888807B publication Critical patent/CN110888807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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,以深度优先的策略逐个点击元素,解析新的页面,获取新的元素并加入队列,直到所有页面全部遍历完成为止。
CN201911121861.4A 2019-11-15 2019-11-15 一种安卓应用自动抓包方法 Active CN110888807B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148304A (zh) * 2020-09-25 2020-12-29 贝壳技术有限公司 实现应用apk包支持网络代理的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
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认证信息的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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