基于逆向HOOK对应用程序进行自动化测试的方法和装置制造方法及图纸

技术编号:39431894 阅读:14 留言:0更新日期:2023-11-19 16:16
本申请提出一种基于逆向HOOK对应用程序进行自动化测试的方法和装置、电子设备以及非瞬时性计算机可读存储介质,所述方法包括响应于脚本运行指令,将所述逆向HOOK注入到所述应用程序中;利用所述逆向HOOK调用所述应用程序的应用接口;通过所述应用接口获取所述应用程序的运行数据、操控所述应用程序和/或模拟所述应用程序的运行环境。根据本申请的实施例,基于逆向HOOK技术对应用程序的接口进行调用,获取应用程序的运行时数据和运行日志、操控应用程序和/或模拟应用程序的运行环境,从而实现了对应用程序的自动化测试。由于整个测试过程无需开发人员进行配合,因此,对终端本身并无侵入性,且复用性较强。且复用性较强。且复用性较强。

【技术实现步骤摘要】
基于逆向HOOK对应用程序进行自动化测试的方法和装置


[0001]本申请涉及自动化测试领域,具体而言,涉及一种基于逆向HOOK对应用程序进行自动化测试的方法和装置、电子设备以及非瞬时性计算机可读存储介质。

技术介绍

[0002]对于终端应用程序,迭代过程中的功能、稳定性、性能等领域的持续优化和保障是提升用户体验的重要基础。
[0003]目前,在对终端应用程序进行运行性能测试时,为了获取终端设备的运行时数据,主要通过日志输出的方式或者日志远程上报的方式进行收集。通过日志输出的方式需要解析日志输出流,并进行相关的信息收集;而日志远程上报的方式需要通过持久化存储后进行综合分析。因此,目前的自动化测试方式依赖于终端应用程序的内部代码实现,通用性较差,且增加了解析难度和存储处理成本。
[0004]另外,在自动化执行方面,业界主流的自动化框架(例如,Appium)能力比较依赖界面操作,无法对应用程序内部的接口进行调用,也无法获取运行时的相关数据,使用的局限性较大。
[0005]因此,由于终端应用程序的稳定性和性能保障始终缺乏有效的测试手段,导致问题的暴露和修复周期较长,严重影响了用户的产品使用体验。

技术实现思路

[0006]本申请旨在提出一种基于逆向HOOK对应用程序进行自动化测试的方法和装置、电子设备以及非瞬时性计算机可读存储介质,以解决终端应用程序的稳定性和基础功能验证的问题。
[0007]根据本申请的一方面,提出一种基于逆向HOOK对应用程序进行自动化测试的方法,包括:响应于脚本运行指令,将所述逆向HOOK注入到所述应用程序中;利用所述逆向HOOK调用所述应用程序的应用接口;通过所述应用接口获取所述应用程序的运行数据。
[0008]根据一些实施例,将所述逆向HOOK注入到所述应用程序中包括:将所述逆向HOOK的应用框架注入到所述应用程序中。
[0009]根据一些实施例,将所述逆向HOOK的应用框架注入到所述应用程序中,包括:利用重打包技术将所述逆向HOOK的应用框架注入到所述应用程序中。
[0010]根据一些实施例,所述逆向HOOK的应用框架包括frida框架、xpsoed框架和/或sub框架。
[0011]根据一些实施例,所述方法还包括:利用所述应用程序的运行数据,对所述应用程序进行功能、性能和/或SDK基础能力验证。
[0012]根据一些实施例,所述应用程序的运行数据包括:所述应用程序运行期间的内存使用数据、CPU运行数据、启动耗时和/或页面加载耗时。
[0013]根据一些实施例,将所述逆向HOOK注入到所述应用程序中包括:将预设的UI自动
化框架与所述逆向HOOK的框架融合;将融合后的所述HOOK框架注入到所述应用程序中。
[0014]根据本申请的一方面,提出一种基于逆向HOOK对应用程序进行自动化测试的装置,包括:逆向HOOK注入单元,用于响应于脚本运行指令,将所述逆向HOOK注入到所述应用程序中;应用接口调用单元,用于利用所述逆向HOOK调用所述应用程序的应用接口;测试执行单元,用于通过所述应用接口获取所述应用程序的运行数据、操控所述应用程序和/或模拟所述应用程序的运行环境。
[0015]根据本申请的一方面,提出一种电子设备,包括:处理器;以及存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如前任一实施例所述的方法。
[0016]根据本申请的一方面,提出一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如前任一实施例所述的方法。
[0017]根据本申请的实施例,基于逆向HOOK技术对应用程序的接口进行调用,获取应用程序的运行时数据和运行日志,从而实现了对应用程序的自动化测试。由于整个测试过程无需开发人员进行配合,因此,对终端本身并无侵入性,且复用性较强。
[0018]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
[0019]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。通过参照附图详细描述其示例实施例,本申请的上述和其他目标、特征及优点将变得更加显而易见。
[0020]图1示出根据本申请示例实施例的一种基于逆向HOOK对应用程序进行自动化测试的系统框图。
[0021]图2示出根据本申请示例实施例的一种基于逆向HOOK对应用程序进行自动化测试的方法流程图。
[0022]图3示出了根据本申请示例实施例的一种基于逆向HOOK技术框架Frida对应用程序进行自动化测试的系统框图。
[0023]图4示出了根据本申请示例实施例的一种基于逆向HOOK对应用程序进行自动化测试的装置框图。
[0024]图5示出根据本申请示例性实施例的一种电子设备。
具体实施方式
[0025]现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图显示表示相同或类似的部分,因而将省略对它们的重复描述。
[0026]本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各
方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0027]所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有这些特定细节中的一个或更多,或者可以采用其它的方式、组元、材料、装置或操作等。在这些情况下,将不详细示出或描述公知结构、方法、装置、实现、材料或者操作。
[0028]附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0029]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0030]对于终端应用程序,迭代过程中的功能、稳定性、性能等领域的持续优化和保障是提升用户体验的重要基础。目前,采用自动化框本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于逆向HOOK对应用程序进行自动化测试的方法,其特征在于,包括:响应于脚本运行指令,将所述逆向HOOK注入到所述应用程序中;利用所述逆向HOOK调用所述应用程序的应用接口;通过所述应用接口获取所述应用程序的运行数据、操控所述应用程序和/或模拟所述应用程序的运行环境。2.根据权利要求1所述的方法,其特征在于,将所述逆向HOOK注入到所述应用程序中包括:将所述逆向HOOK的应用框架注入到所述应用程序中。3.根据权利要求2所述的方法,其特征在于,将所述逆向HOOK的应用框架注入到所述应用程序中,包括:利用重打包技术将所述逆向HOOK的应用框架注入到所述应用程序中。4.根据权利要求2所述的方法,其特征在于,所述逆向HOOK的应用框架包括frida框架、xpsoed框架和/或sub框架。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:利用所述应用程序的运行数据,对所述应用程序进行功能、性能和/或SDK基础能力验证。6.根据权利要求1所述的方法,其特征在于,所述应用程序的运行数据包括:所述应用程序运行期间的内存使用数据...

【专利技术属性】
技术研发人员:陈立平曹立成
申请(专利权)人:浙江天猫技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1