CN112784194A - 一种Android应用页面自动化遍历方法及系统 - Google Patents
一种Android应用页面自动化遍历方法及系统 Download PDFInfo
- Publication number
- CN112784194A CN112784194A CN202110119903.1A CN202110119903A CN112784194A CN 112784194 A CN112784194 A CN 112784194A CN 202110119903 A CN202110119903 A CN 202110119903A CN 112784194 A CN112784194 A CN 112784194A
- Authority
- CN
- China
- Prior art keywords
- page
- control
- controls
- information
- current
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种Android应用页面自动化遍历方法及系统,所述方案包括获取页面信息并进行解析,获取页面中可操作的初始控件集合;判断当前页面是否为新页面,若是,则对获取的初始控件进行相似性分析并将该页面保存至页面集合,若否,则从页面集合中加载页面;使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;对当前信息进行更新;根据页面权重搜索当前最优页面,并跳转到最优页面,迭代执行上述操作,实现页面的自动化遍历;通过在控件规模方面和页面遍历选择中的改进,有效提高自动化遍历效率,获取更加丰富的网络流量,为移动平台的恶意应用检测提供了丰富的流量支撑。
Description
技术领域
本公开属于数据处理技术领域,尤其涉及一种Android应用页面自动化遍历方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
居高不下的移动平台的恶意应用检测一直是网络安全领域重点关注的问题,根据AV-TEST的最新报告,结束了2016-2018年恶意应用数量的下降趋势,自2019年起,恶意应用开始急剧增长。除此之外,为了避免恶意应用被检测到,攻击者不断的增加恶意应用的复杂度。
近些年,一种基于移动端网络流量的检测方式被提出,这种方法可以在没有应用本身的情况下,通过分析网络流量,付出极小代价完成对恶意应用的检测。不可避免地,这种检测方式离不开大量且丰富的网络流量进行数据支撑。
借鉴Android自动化测试技术应用于移动应用的网络流量的触发,对于大规模获取指定应用或指定种类应用的网络流量,是一种很有前途的方式。但是发明人发现,现有的自动化流量采集平台仅关注网络流量采集速度,对于如何高效的触发网络流量和有效的遍历方式本身并没有进行相关的研究和讨论。Android自动化测试技术虽然可以应用于模拟操作Android应用,用来获取网络流量,但是两者的关注点略有差别,传统的Android测试更多关注触发移动应用的BUG,而流量触发则是关注触发移动应用的流量内容,直接使用已有Android测试策略,并不能充分的触发移动应用的网络流量,因此如何高效的触发Android应用的网络流量,是一个亟需解决的问题。除此之外,随着移动应用页面变得更加复杂和多样化,控件规模急剧增加,传统的触发策略,已经不能应对日渐复杂化的移动应用。
发明内容
本公开为了解决上述问题,提供了一种Android应用页面自动化遍历方法及系统,所述方案从控件提取和页面搜索两个方面入手,在控件提取方面,提出一种自适应控件提取和更新的方式;在页面遍历选择中,提出了一种基于权重的最优页面搜索算法;从而提高自动化遍历效率,获取更加丰富的网络流量,为移动平台的恶意应用检测提供了丰富的流量支撑。
根据本公开实施例的第一个方面,提供了一种Android应用页面自动化遍历方法,包括:
步骤(1):APK基本信息获取,程序终止条件设置,APK启动进入初始页面;
步骤(2):获取页面信息并进行解析,获取页面中可操作的初始控件集合;
步骤(3):判断当前页面是否为新页面,若是,则对获取的初始控件进行相似性分析并将该页面保存至页面集合,若否,则从页面集合中加载页面,执行步骤(4);
步骤(4):使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;
步骤(5):操作完毕,判定程序是否满足终止条件,如果是,程序结束,否则,对当前页面信息进行更新并进入步骤(6);
步骤(6):根据页面权重搜索当前最优页面,并跳转到最优页面,迭代执行步骤(2)至步骤(6)的操作,实现页面的自动化遍历。
进一步的,所述步骤(1)的步骤包括:
步骤(1-1):使用aapt命令获取APK的基本信息,版本号,应用名,包名和初始activity,主要为package和launchable-activity;
步骤(1-2):程序终止条件设定,这里可以使用时间和操作步数来决定程序的结束时间;
步骤(1-3):通过ADB命令和launchable-activity启动APK并进入初始页面;
进一步的,所述步骤(2)的步骤包括:
步骤(2-1):页面内容的获取,使用ADB命令将页面信息以XML文件形式保存并返回;
步骤(2-2):页面初始控件的获取,XML文件以树形结构保存页面控件,我们自上而下遍历树中每一个分支,取第一个具备点击属性的控件,以及具备滑动属性的控件作为初始控件;
步骤(2-3):按照操作属性将控件分为滑动控件集合和点击控件集合,点击控件集合又分为简单点击控件集合和复杂点击控件集合;带有滑动属性的控件称为滑动控件;这里的简单点击控件和复杂点击控件通过有无子控件进行划分,子控件的获取为使用该控件作为root节点,使用步骤(2-2)的方式获取;若控件存在子控件,则称为复杂点击控件,否则为简单点击控件。
进一步的,所述步骤(3)的步骤包括:
步骤(3-1):页面存在性判定,基于获取控件的页面位置,计算页面id,通过页面id判断该页面是否存在页面集合中,如果存在,转步骤(4),否则作为新页面处理,并将新页面添加到页面集合,进入步骤(3-2);
步骤(3-2):所述相似性分析,针对可点击控件集合,基于预设约束条件,对控件进行组合,减少相似控件带来遍历的重复操作。
进一步的,所述预设约束条件包括控件大小、是否有同一父节点、子控件数量,通过预设约束条件判定在一起的控件数量如果超过或等于三个,则这些控件形成一个组合控件并以列表形式表示。
进一步的,所述步骤(4)的步骤包括:
步骤(4-1):操作方式概率计算,其中,滑动控件数量为NSC,可点击控件数量为NCL,则各集合操作概率为:PSC=NSC/(NSC+NCL),PCL=1-PSC,PSC为滑动集合选择概率,PCL为点击集合选择概率;
步骤(4-2):简单和复杂集合选择概率计算,其中,复杂控件集合数量为Nc,简单控件集合数量NS,则各集合概率选择为:PS=NS/(NS+NC),PC=1-PS,PS为简单集合选择概率,PC为复杂集合选择概率;
步骤(4-3):组合控件选择概率计算,这里组合元素以组合节点数量进行计算;
步骤(4-4):随机产生数字,按照上述概率计算方式,选取操作集合,获取操作控件,并进行对应的点击或滑动操作。
进一步的,所述步骤(5)的步骤包括:
步骤(5-1):控件集合更新;
步骤(5-2):页面跳转集合更新,页面跳转集合初始为空,步骤(4-4)操作完毕,页面如果发生跳转,则将跳转页面记录到操作页面的页面跳转集合中;
步骤(5-3):控件操作信息更新;
步骤(5-4):页面权重更新。
进一步的,所述步骤(6)步骤为:
步骤(6-1):搜索当前页面集合,查找权重大于当前页面权重的预设倍数的页面,作为潜在可能性最优页面集合;
步骤(6-2):使用BFS算法,分别计算所述潜在可能性最优页面集合中页面元素到当前页面的距离,计算携带距离的权重Wdist,得到最大MAX(Wdist),判断算MAX(Wdist)是否大于当前页面权重W,若是,则MAX(Wdist)对应的页面为最优页面,若否,则当前页面就是最优页面;
步骤(6-3):跳转到最优页面,若跳转成功,执行步骤(2)到步骤(5),否则返回中间非预期页面,移除错误的跳转信息,并更新最新跳转信息。
根据本公开实施例的第二个方面,提供了一种Android应用页面自动化遍历系统,包括:
页面解析单元,其用于获取页面信息并进行解析,获取页面中可操作的初始控件集合;
页面存在性判定单元,其用于判断当前页面是否为新页面,若是,则对在页面解析单元中获取的初始控件进行相似性分析,并将该页面保存至页面集合,若否,则从页面集合中加载页面;
页面操作单元,其用于使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;
信息更新单元,其用于对当前信息进行更新;
页面遍历单元,根据页面权重搜索当前最优页面,并跳转到最优页面;
迭代执行上述各单元的操作,实现页面的自动化遍历。
根据本公开实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种Android应用页面自动化遍历系统。
根据本公开实施例的第四个方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种Android应用页面自动化遍历方法。
与现有技术相比,本公开的有益效果是:
(1)本公开所述方案中采用一种新的控件规模控制方法,通过自上而下的获取第一个可操作控件,并进行相似性分析和动态试探性控件缩放,比较科学的有效的控制控件规模,加速自动化遍历过程,减少因为相似控件导致的操作重复问题,如跳转页面一致或http请求格式一样。
(2)本公开所述方案中采用一种基于权重的最优页面搜索策略,通过结合页面操作控件,未操作控件,跳转页面等因素去计算页面权重,在搜索过程中,增加距离因素,综合了各方面对页面重要性的衡量,通过这种方式可以快速操作完重要页面中的控件,从而间接达到移动应用网络流量的快速触发。
本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例一中所述的自动化遍历的整体流程图;
图2为本公开实施例一中所述的页面树形组织形式;
图3(a)和图3(b)为本公开实施例一中所述的导致控件规模增加的情况示例图;
图4为本公开实施例一中所述的基于页面遍历的流程图。
具体实施方式
下面结合附图与实施例对本公开做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。实施例一:
本实施例的目的是提供一种Android应用页面自动化遍历方法。
一种Android应用页面自动化遍历方法,包括:
步骤(1):APK基本信息获取,程序终止条件设置,APK启动进入初始页面;
其中,所述步骤(1)的步骤包括:
步骤(1-1):使用aapt命令获取APK的基本信息,版本号,应用名,包名和初始activity,主要为package和launchable-activity;
步骤(1-2):程序终止条件设定,这里可以使用时间和操作步数来决定程序的结束时间;
步骤(1-3):通过ADB命令和launchable-activity启动APK并进入初始页面;
步骤(2):获取页面信息并进行解析,获取页面中可操作的初始控件集合;
其中,所述步骤(2)的详细步骤为:
步骤(2-1):页面内容获取。使用ADB命令将页面信息以XML文件形式保存并返回。相关指令:adb-s<device>shelluiautomatordump<device_xml_save_path>,adb-s<device>cat<device_xml_save_path>,其中<device>为执行的Android设备,<device_xml_save_path>为保存到Android设备中的XML文件路径。
步骤(2-2):页面初始控件获取。获取的xml文件信息以树形结构保存,我们自上而下遍历树形结构中的每一个分支,取第一个具备点击属性的控件和具备滑动属性的控件,其中滑动属性的控件不影响点击属性的控件的获取。
点击属性:clickable='true'andenabled='true'
滑动属性:scrollable='true'andenabled='true'
步骤(2-3):按照操作将控件分为滑动控件集合和点击控件集合,点击控件集合又分为简单点击控件集合,复杂点击控件集合。这里,控件含有可操作子控件称为复杂控件,否则称为简单控件。带有滑动属性的控件称为滑动控件。
步骤(3):判断当前页面是否为新页面,若是,则对获取的初始控件进行相似性分析并将该页面保存至页面集合,若否,则从页面集合(页面集合初始阶段为空)中加载页面,执行步骤(4);
其中,所述步骤(3)的详细步骤为:
步骤(3-1):页面存在性判定。基于获取控件的页面位置,计算页面id,这里md5值代替。通过页面id判断该页面是否存在页面集合中,如果存在,转步骤3,否则作为新页面处理,将新页面添加到也页面集合,进入相似性分析。
步骤(3-2):相似性分析。针对可点击控件集合,通过判定控件大小(长度和宽度),是否同一父节点,是否同数量子控件(复杂控件)来对控件进行组合,如果组合的控件数量超过三个,则以一个组合控件代表这些控件,减少相似控件带来遍历的重复操作。例如控件1,2,3为相似控件,则组成一个组合控件[1,2,3],以列表形式保存。
步骤(4):使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;
其中,所述步骤(4)的详细步骤为:
步骤(4-1):操作方式概率计算,滑动控件数量为NSC,可点击控件数量为NCL,则各集合操作概率为:PSC=NSC/(NSC+NCL),PCL=1-PSC,PSC为滑动集合选择概率,PCL为点击集合选择概率。
步骤(4-2):简单和复杂集合选择概率计算,复杂控件集合数量为Nc,简单控件集合数量NS,则各集合概率选择为:PS=NS/(NS+NC),PC=1-PS,PS为简单集合选择概率,PC为复杂集合选择概率。
步骤(4-3):组合控件选择概率计算,这里组合元素以组合节点数量进行计算。例如[1,2,[a,b,c]],1,2为简单控件,选择概率为1/5,[a,b,c]为组合控件,选择概率为3/5。这种计算方式保证了控件操作多数占优。
步骤(4-4):随机产生数字,按照上述概率计算方式,选取操作集合,获取操作控件,并进行对应的点击或滑动操作。
步骤(5):对当前信息进行更新;
其中,所述步骤(5)的详细步骤为:
步骤(5-1):控件集合更新,控件试探性缩放规则如下四条:
1)若操作控件为滑动和单个简单控件,直接移除;
2)若操作控件为组合的简单控件,进行试探性操作,组合的简单控件中两次跳转不一致,直接裂开,否则以概率P决定是否移除;
3)若操作控件为单个复杂控件,父控件无跳转或父子跳转不一致,控件裂开,否则移除;
4)若操作控件为组合的复杂控件,组合的复杂控件中两次跳转不一致,直接裂开,否则以概率P决定是否移除。
这里的裂开,对于组合控件,直接将剩余控件添加到所属集合。对于复杂控件,则该控件为root节点,则执行(2-2),(2-3)操作,并将获取的控件,分别添加到滑动,简单,复杂控件集合中。其中:
步骤(5-2):页面跳转集合更新,记录上一页面到新页面的跳转和对应的操作。保存形式为:{页面1_id:{[操作方式1,操作信息1],...,[操作方式n,操作信息n]},...,页面n_id:{[操作方式1,操作信息1],...,[操作方式n,操作信息n]}}
步骤(5-3):控件信息更新。更新控件操作次数,更新控件跳转页面id。
步骤(5-4):页面权重更新,所述页面权中的计算步骤如下:
首先,基于认为那些含有更多操作控件,具有更高跳转概率的页面为优秀页面,结合控件数量,控件复杂度,页面跳转,我们设计了一套页面权重计算方式,具体如下所示。
Cc=∑Ccm-one+∑Cco-one, (4)
其中,Cs代表简单控件集合的复杂度,Nss为简单控件数量,Nsm为组合简单控件中控件的数量,这里组合控件中的控件权重只有正常权重的一半。
Cco-one代表单个复杂控件的复杂度,其中n为试探操作次数(这里定义为2),oper代表操作次数,Ncs代表子控件数量。
Ccm-one代表组合复杂控件的复杂度,Ncm为组合复杂控件数量。
Cc代表复杂控件集合的复杂度,全部复杂控件和复杂组合控件复杂度的累加。
weight为页面权重,Nj为页面跳转数量。
我们通过上述5步可以计算页面的权重。
步骤(6):根据页面权重搜索当前最优页面,并跳转到最优页面,迭代执行步骤(2)至步骤(6)的操作,实现页面的自动化遍历。
其中,所述步骤(6)的详细步骤为:
步骤(6-1):搜索当前页面集合,查找权重大于为当前页面权重的2倍的页面,这些页面为潜在可能性最优页面集合;
步骤(6-2):使用BFS算法,计算(6-1)潜在可能性最优页面集合到当前页面的距离,计算携带距离的权重Wdist,得到最大MAX(Wdist),计算MAX(Wdist)是否大于当前页面权重W,如果大于,找到最优页面,否则当前页面就是最优页面;其中带有距离的权重Wdist计算公式如下:
步骤(6-3):通过(6-2)得到的当前页面到最优页面的路径和操作,跳转到最优页面,如果跳转成功,执行步骤(2)到步骤(5),否则返回中间非预期页面(包括失败页面,非目标页面,未知页面),移除错误的跳转信息,并更新最新跳转信息。
进一步的,为了便于理解,以下结合附图对本公开所述方案进行详细说明,如图1所示,本公开所述方案的具体流程如下说明:
预先获取APK基本信息获取,设置程序终止条件,APK启动进入初始页面;
(1)页面解析和初始控件获取,获取XML格式页面信息,抽象数据为树形结构,自上而下搜索第一个属性为可点击和可滑动的控件,点击控件集合,根据是否存在可操作子控件分为简单节点集合和复杂节点集合,至此,可操作控件初始获取完毕。
(2)页面保存和加载,计算页面id,结合保留的页面集合,判断该页面是否是首次出现的页面。如果是首次出现的页面,对页面进行相似性分析,并将页面信息存储到页面集合中。否则根据页面id,从页面集合中加载对应的页面信息。
(3)控件相似性分析,如图3(a)和图3(b)展示的同级别控件,根据控件大小,是否共有父节点,是否存在同数量子节点,是否连续出现三个及其以上同级节点,如果符合上述四条特征,则判定为相似性控件,相似性控件将会组成一个组合控件,该控件为列表。
(4)控件选择和操作,使用随机选择方法选择一个操作控件,根据属性进行滑动和点击操作,并记录跳转关系和对应的操作。
(5)试探性控件缩放,复杂控件的裂开为以该节点为root,进行控件初始获取和相似性分析,并将获取的控件添加到对应的复杂和简单控件集合中。
(6)最优页面搜索,模拟操作完毕,根据页面权重和距离计算出最优的操作页面,并重复进行步骤(1)-(6)。
如图2所示,将ADB获取的XML文件抽象出的数据结构为树形结构,具体如下介绍:
(1)初始控件获取,得到点击控件集合[1,2,3,4,5,a,b,c,6]
(2)相似性分析后,得到复杂控件集合:[[1,2,3],6],简单控件集合:[4,5,[a,b,c]]
(3)试探性控件缩放,如果控件6跳转与子节点d不一致,则控件6进行初始控件获取和相似性分析后,e,f添加到简单控件集合。此时,简单控件集合:[4,5,[a,b,c],e,f],复杂控件集合:[[1,2,3]]。如果简单组合控件中,a与b跳转不一致,则将c以概率P添加到简单控件集合。此时,简单控件集合:[4,5,c,e,f],复杂控件集合:[[1,2,3]]。组合复杂节点在简单组合操作的基础上,对剩余裂开的复杂节点做同控件6同样操作。同样,如果组合节点中两个控件跳转相同,第三次以概率P决定是否继续试探操作,否则全部移除。
如图3(a)和图3(b)所示,展示了控件规模增长的两种情况,具体处理如下:
(1)同级别控件,开发人员使用程序批量生成页面控件的一种方式,控件跳转页面布局相同,HTTP请求除了参数不同外,其余相同。在程序处理过程中,同级别控件在相似性分析和试探性控件缩放阶段进行处理,
(2)父子控件,控件跳转页面完全相同。在程序处理过程中,父子控件在初始化控件获取和试探性控件缩放阶段处理。
如图4所示,展示了遍历的一个中间过程,我们以当前状态为例,计算最优页面,具体流程如下说明:
页面集合:[A,B,C,D],当前B页面,权重WB=0
(1)页面权重搜索:
(2)通过BFS最短距离计算:
path[B->C]=[B,C],dist=2
path[B->D]=[B,C,D],dist=3
(3)集合距离的权重比较:
Wdist-C=1>WB
Wdist-D=1/3>WB
(4)最优页面跳转:
B->B.a->C
(5)操作并更新后,继续重复上述步骤(1)-(4)
这里带有距离的权重计算公式如下:
当前页面的dist=1。
实施例二:
本实施例的目的是提供一种Android应用页面自动化遍历系统。
一种Android应用页面自动化遍历系统,包括:
页面解析单元,其用于获取页面信息并进行解析,获取页面中可操作的初始控件集合;
页面存在性判定单元,其用于判断当前页面是否为新页面,若是,则对在页面解析单元中获取的初始控件进行相似性分析,并将该页面保存至页面集合,若否,则从页面集合中加载页面;
页面操作单元,其用于使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;
信息更新单元,其用于对当前信息进行更新;
页面遍历单元,根据页面权重搜索当前最优页面,并跳转到最优页面;
迭代执行上述各单元的操作,实现页面的自动化遍历。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一中所述的方法。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述实施例提供的一种Android应用页面自动化遍历方法及系统可以实现,具有广阔的应用前景。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
Claims (10)
1.一种Android应用页面自动化遍历方法,其特征在于,
步骤(1):APK基本信息获取,程序终止条件设置,APK启动进入初始页面;
步骤(2):获取页面信息并进行解析,获取页面中可操作的初始控件集合;
步骤(3):判断当前页面是否为新页面,若是,则对获取的初始控件进行相似性分析并将该页面保存至页面集合,若否,则从页面集合中加载页面;
步骤(4):使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;
步骤(5):操作完毕,判定程序是否满足终止条件,如果是,程序结束,否则,对当前页面信息进行更新;
步骤(6):根据页面权重搜索当前最优页面,并跳转到最优页面,迭代执行步骤(2)至步骤(6)的操作,实现页面的自动化遍历。
2.如权利要求1所述的一种Android应用页面自动化遍历方法,其特征在于,所述步骤(2)的步骤包括:
步骤(2-1):页面内容的获取,使用ADB命令将页面信息以XML文件形式保存并返回;
步骤(2-2):页面初始控件的获取,XML文件以树形结构保存页面控件,我们自上而下遍历树中每一个分支,取第一个具备点击属性的控件,以及具备滑动属性的控件作为初始控件;
步骤(2-3):按照操作属性将控件分为滑动控件集合和点击控件集合,点击控件集合又分为简单点击控件集合和复杂点击控件集合;带有滑动属性的控件称为滑动控件;这里的简单点击控件和复杂点击控件通过有无子控件进行划分,子控件的获取为使用该控件作为root节点,使用步骤(2-2)的方式获取;若控件存在子控件,则称为复杂点击控件,否则为简单点击控件。
3.如权利要求1所述的一种Android应用页面自动化遍历方法,其特征在于,所述步骤(3)的步骤包括:
步骤(3-1):页面存在性判定,基于获取控件的页面位置,计算页面id,通过页面id判断该页面是否存在页面集合中,如果存在,转步骤(4),否则作为新页面处理,并将新页面添加到页面集合,进入步骤(3-2);
步骤(3-2):所述相似性分析,针对可点击控件集合,基于预设约束条件,对控件进行组合,减少相似控件带来遍历的重复操作。
4.如权利要求1所述的一种Android应用页面自动化遍历方法,其特征在于,所述预设约束条件包括控件大小、是否有同一父节点、子控件数量,通过预设约束条件判定在一起的控件数量如果大于或等于三个,则这些控件形成一个组合控件并以列表形式表示。
5.如权利要求1所述的一种Android应用页面自动化遍历方法,其特征在于,所述步骤(4)的步骤包括:
步骤(4-1):操作方式概率计算,其中,滑动控件数量为NSC,可点击控件数量为NCL,则各集合操作概率为:PSC=NSC/(NSC+NCL),PCL=1-PSC,PSC为滑动集合选择概率,PCL为点击集合选择概率;
步骤(4-2):简单和复杂集合选择概率计算,其中,复杂控件集合数量为Nc,简单控件集合数量NS,则各集合概率选择为:PS=NS/(NS+NC),PC=1-PS,PS为简单集合选择概率,PC为复杂集合选择概率;
步骤(4-3):组合控件选择概率计算,这里组合元素以组合节点数量进行计算;
步骤(4-4):随机产生数字,按照上述概率计算方式,选取操作集合,获取操作控件,并进行对应的点击或滑动操作。
6.如权利要求1所述的一种Android应用页面自动化遍历方法,其特征在于,所述步骤(5)的步骤包括:
步骤(5-1):控件集合更新;
步骤(5-2):页面跳转集合更新,页面跳转集合初始为空,步骤(4-4)操作完毕,页面如果发生跳转,则将跳转页面记录到操作页面的页面跳转集合中;
步骤(5-3):控件操作信息更新;
步骤(5-4):页面权重更新。
7.如权利要求1所述的一种Android应用页面自动化遍历方法,其特征在于,所述步骤(6)步骤为:
步骤(6-1):搜索当前页面集合,查找权重大于当前页面权重的预设倍数的页面,作为潜在可能性最优页面集合;
步骤(6-2):使用BFS算法,分别计算所述潜在可能性最优页面集合中页面元素到当前页面的距离,计算携带距离的权重Wdist,得到最大MAX(Wdist),判断算MAX(Wdist)是否大于当前页面权重W,若是,则MAX(Wdist)对应的页面为最优页面,若否,则当前页面就是最优页面;
步骤(6-3):跳转到最优页面,若跳转成功,执行步骤(2)到步骤(5),否则返回中间非预期页面,移除错误的跳转信息,并更新最新跳转信息。
8.一种Android应用页面自动化遍历系统,其特征在于,包括:
页面解析单元,其用于获取页面信息并进行解析,获取页面中可操作的初始控件集合;
页面存在性判定单元,其用于判断当前页面是否为新页面,若是,则对在页面解析单元中获取的初始控件进行相似性分析,并将该页面保存至页面集合,若否,则从页面集合中加载页面;
页面操作单元,其用于使用概率和随机选择策略从控件集合中选择要操作的控件,并执行点击或滑动操作;
信息更新单元,其用于对当前信息进行更新;
页面遍历单元,根据页面权重搜索当前最优页面,并跳转到最优页面;
迭代执行上述各单元的操作,实现页面的自动化遍历。
9.一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的一种Android应用页面自动化遍历系统。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的一种Android应用页面自动化遍历方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119903.1A CN112784194B (zh) | 2021-01-28 | 2021-01-28 | 一种Android应用页面自动化遍历方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119903.1A CN112784194B (zh) | 2021-01-28 | 2021-01-28 | 一种Android应用页面自动化遍历方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784194A true CN112784194A (zh) | 2021-05-11 |
CN112784194B CN112784194B (zh) | 2022-06-21 |
Family
ID=75759511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110119903.1A Active CN112784194B (zh) | 2021-01-28 | 2021-01-28 | 一种Android应用页面自动化遍历方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784194B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448868A (zh) * | 2021-07-16 | 2021-09-28 | 网易(杭州)网络有限公司 | 一种游戏软件兼容性测试方法、装置、设备及介质 |
CN113779352A (zh) * | 2021-07-27 | 2021-12-10 | 浙江大学 | 面向无障碍检测的移动端应用页面自动遍历方法 |
CN114051061A (zh) * | 2021-11-09 | 2022-02-15 | 武汉虹旭信息技术有限责任公司 | 互联网应用协议分析方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102007494A (zh) * | 2008-04-15 | 2011-04-06 | 雅虎公司 | 结合搜索结果进行踪迹识别的系统和方法 |
CN104035867A (zh) * | 2014-06-04 | 2014-09-10 | 重庆泰凯科技有限公司 | 基于Android的应用功能遍历测试方法 |
CN104182412A (zh) * | 2013-05-24 | 2014-12-03 | 中国移动通信集团安徽有限公司 | 一种网页爬取方法及系统 |
CN107357725A (zh) * | 2017-06-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
US20200242632A1 (en) * | 2019-01-29 | 2020-07-30 | Salesforce.Com, Inc. | Automated method and system for discovery and identification of a company name from a plurality of different websites |
CN112052180A (zh) * | 2020-09-24 | 2020-12-08 | 广州宸祺出行科技有限公司 | 一种基于控件排列的稳定性测试的方法及系统 |
CN112115051A (zh) * | 2020-09-09 | 2020-12-22 | 福建新大陆软件工程有限公司 | 应用的页面遍历探测方法、装置、设备及可读存储介质 |
-
2021
- 2021-01-28 CN CN202110119903.1A patent/CN112784194B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102007494A (zh) * | 2008-04-15 | 2011-04-06 | 雅虎公司 | 结合搜索结果进行踪迹识别的系统和方法 |
CN104182412A (zh) * | 2013-05-24 | 2014-12-03 | 中国移动通信集团安徽有限公司 | 一种网页爬取方法及系统 |
CN104035867A (zh) * | 2014-06-04 | 2014-09-10 | 重庆泰凯科技有限公司 | 基于Android的应用功能遍历测试方法 |
CN107357725A (zh) * | 2017-06-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
US20200242632A1 (en) * | 2019-01-29 | 2020-07-30 | Salesforce.Com, Inc. | Automated method and system for discovery and identification of a company name from a plurality of different websites |
CN112115051A (zh) * | 2020-09-09 | 2020-12-22 | 福建新大陆软件工程有限公司 | 应用的页面遍历探测方法、装置、设备及可读存储介质 |
CN112052180A (zh) * | 2020-09-24 | 2020-12-08 | 广州宸祺出行科技有限公司 | 一种基于控件排列的稳定性测试的方法及系统 |
Non-Patent Citations (3)
Title |
---|
DOMENICO AMALFITANO等: "MobiGUITAR: Automated Model-Based Testing of Mobile Apps", 《IEEE SOFTWARE 》, vol. 32, no. 5, 31 October 2015 (2015-10-31) * |
DONG CAO,SHANSHAN WANG等: "DroidCollector: A High Performance Framework for High Quality Android Traffic Collection", 《 2016 IEEE TRUSTCOM/BIGDATASE/ISPA》, 9 February 2017 (2017-02-09) * |
WUNAN GUO,LIWEI SHEN等: "Improving Automated GUI Exploration of Android Apps via Static Dependency Analysis", 《2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME)》, 2 November 2020 (2020-11-02) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448868A (zh) * | 2021-07-16 | 2021-09-28 | 网易(杭州)网络有限公司 | 一种游戏软件兼容性测试方法、装置、设备及介质 |
CN113448868B (zh) * | 2021-07-16 | 2022-11-01 | 网易(杭州)网络有限公司 | 一种游戏软件兼容性测试方法、装置、设备及介质 |
CN113779352A (zh) * | 2021-07-27 | 2021-12-10 | 浙江大学 | 面向无障碍检测的移动端应用页面自动遍历方法 |
CN113779352B (zh) * | 2021-07-27 | 2023-11-24 | 浙江大学 | 面向无障碍检测的移动端应用页面自动遍历方法 |
CN114051061A (zh) * | 2021-11-09 | 2022-02-15 | 武汉虹旭信息技术有限责任公司 | 互联网应用协议分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112784194B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112784194B (zh) | 一种Android应用页面自动化遍历方法及系统 | |
US20190324772A1 (en) | Method and device for processing smart contracts | |
CN109117164B (zh) | 基于关键元素差异性分析的微服务更新方法及系统 | |
CN108595191B (zh) | 一种应用安装方法及装置 | |
Bendík et al. | Recursive online enumeration of all minimal unsatisfiable subsets | |
CN111008154B (zh) | 一种基于强化学习的Android应用自动测试方法及系统 | |
CN106295346B (zh) | 一种应用漏洞检测方法、装置及计算设备 | |
JP2011150546A (ja) | 認識装置 | |
JP2017134582A (ja) | グラフインデックス探索装置及びグラフインデックス探索装置の動作方法 | |
CN112346730B (zh) | 一种中间表示的生成方法、计算机设备及存储介质 | |
CN113312175A (zh) | 一种算子确定、运行方法及装置 | |
EP3893128A1 (en) | Crawler data recognition method, system and device | |
KR102189811B1 (ko) | 멀티 홉 이웃을 이용한 컨볼루션 학습 기반의 지식 그래프 완성 방법 및 장치 | |
CN114969762A (zh) | 漏洞信息处理方法、服务装置和漏洞检测模块 | |
CN109189343B (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN108694242B (zh) | 基于dom的节点查找方法、设备、存储介质及装置 | |
CN112286706B (zh) | 安卓应用的应用信息远程快速获取方法及相关设备 | |
WO2019209674A1 (en) | Systems and methods for designing data structures and synthesizing costs | |
CN103699653A (zh) | 数据聚类方法和装置 | |
CN113704759A (zh) | 基于Adaboost的安卓恶意软件检测方法、系统及存储介质 | |
CN111698256A (zh) | 检测非法链接的方法及装置 | |
CN110825947B (zh) | Url去重方法、装置、设备与计算机可读存储介质 | |
CN116909613A (zh) | 前端增量更新方法、装置及其应用 | |
CN115795193A (zh) | 页面数据提取方法、页面自动化测试方法 | |
US8589435B2 (en) | Method, system and program for simplifying data flow in a statement with sequenced subexpressions |
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 |