CN105095090A - 应用安装包的测试方法及装置 - Google Patents

应用安装包的测试方法及装置 Download PDF

Info

Publication number
CN105095090A
CN105095090A CN201510591604.2A CN201510591604A CN105095090A CN 105095090 A CN105095090 A CN 105095090A CN 201510591604 A CN201510591604 A CN 201510591604A CN 105095090 A CN105095090 A CN 105095090A
Authority
CN
China
Prior art keywords
bag
tested
signature
subtest
test
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.)
Pending
Application number
CN201510591604.2A
Other languages
English (en)
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.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510591604.2A priority Critical patent/CN105095090A/zh
Publication of CN105095090A publication Critical patent/CN105095090A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种应用安装包的测试方法及装置。其中方法包括:获取待测试的应用的安装包作为被测包;在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致;若不一致,则利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致;利用辅助测试包对被测包进行测试。本发明解决了辅助测试包与被测包签名不一致时,无法在同一进程中运行,无法进行测试的问题,而且重签名操作是由服务端程序自动进行的,并不需要通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的,提高了测试效率。

Description

应用安装包的测试方法及装置
技术领域
本发明涉及互联网技术领域,具体涉及一种应用安装包的测试方法及装置。
背景技术
apk即Andriod安装包,包含了安装应用所需的安装程序文件,应用的开发者在开发工作结束后,会为安装包设置签名,该签名起到标识作用,安装包的签名可以用于防止开发商通过使用相同的安装包名称来混淆替换已经安装的程序,相同名称的安装包,签名不同不能进行替换,根据Andriod测试安全法则,在对安装包进行测试时,安装包和用于测试安装包的辅助测试包应该在同一个进程中运行,与安装包的签名不同的辅助测试包不能用于测试安装包。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用安装包的测试方法和相应的应用安装包的测试装置。
根据本发明的一个方面,提供了一种应用安装包的测试方法,其包括:
获取待测试的应用的安装包作为被测包;
在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致;若不一致,则利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致;
利用辅助测试包对被测包进行测试。
根据本发明的另一方面,提供了一种应用安装包的测试装置,其包括:
获取模块,适于获取待测试的应用的安装包作为被测包;
检测模块,适于在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致;
签名模块,适于在被测包的签名与辅助测试包的签名不一致的情况下,利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致;
测试模块,适于利用辅助测试包对被测包进行测试。
根据本发明提供的方案,通过检测被测包的签名与辅助测试包的签名是否一致,确定是否可以利用辅助测试包对被测包进行签名,若不一致,利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致,利用辅助测试包对被测包进行测试,解决了辅助测试包与被测包签名不一致时,无法在同一进程中运行,无法进行测试的问题,而且重签名操作是由服务端程序自动进行的,并不需要通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的,提高了测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的应用安装包的测试方法的流程图;
图2示出了根据本发明另一个实施例的应用安装包的测试方法的流程图;
图3示出了一种应用安装包的获取方式;
图4示出了另一种应用安装包的获取方式;
图5示出了根据本发明一个实施例的应用安装包的测试装置的结构框图;
图6示出了根据本发明另一个实施例的应用安装包的测试装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的应用安装包的测试方法的流程图。如图1所示,该方法包括以下步骤:
步骤S100,获取待测试的应用的安装包作为被测包。
本实施例中的待测试的应用的安装包可以是后缀为“.apk”的文件,可以通过用户上传本地客户端中已下载的apk文件或者从网站即时下载apk文件的方式获取得到待测试的应用的安装包,对该应用的安装包进行测试,即,将获取到的待测试的应用安装包作为被测包。
步骤S101,在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致;若不一致,则利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致。
在本实施例中,辅助测试包用于对获取到的被测包进行测试,辅助测试包对被测包进行测试时,要求辅助测试包和被测包在同一个进程中运行,而辅助测试包和被测包在同一个进程中运行,则要求辅助测试包和被测包的签名一致。
在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致,可以确定是否可以利用辅助测试包对被测包进行测试,签名一致,则说明可以利用辅助测试包对被测包进行测试;签名不一致,则说明不可以利用辅助测试包对被测包进行测试,需要对被测包进行重签名操作,即,使被测包的签名与辅助测试包的签名一致,以实现辅助测试包对被测包的测试。
本步骤中,检测被测包的签名与辅助测试包的签名是否一致、利用辅助测试包的签名对被测包进行重签名的操作是由服务端程序自动进行的,即该操作并不需要人工判断签名是否一致,以及通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的。
步骤S102,利用辅助测试包对被测包进行测试。
利用步骤S101中的方法,使辅助测试包的签名和被测包的签名一致,然后,利用辅助测试包对被测包进行测试,例如,UI测试(界面测试)。
根据本发明上述实施例提供的方法,通过检测被测包的签名与辅助测试包的签名是否一致,确定是否可以利用辅助测试包对被测包进行签名,若不一致,利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致,利用辅助测试包对被测包进行测试,解决了辅助测试包与被测包签名不一致时,无法在同一进程中运行,无法进行测试的问题,而且重签名操作是由服务端程序自动进行的,并不需要通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的,提高了测试效率。
图2示出了根据本发明另一个实施例的应用安装包的测试方法的流程图。如图2所示,该方法包括以下步骤:
步骤S200,获取待测试的应用的安装包作为被测包。
本实施例中的待测试的应用的安装包可以是后缀为“.apk”的文件,可以通过用户上传本地客户端中已下载的apk文件或者从网站即时下载apk文件的方式获取得到待测试的应用的安装包,对该应用的安装包进行测试,即,将获取到的待测试的应用安装包作为被测包。
举例说明,用户可以通过点击Web测试网页中的“本地上传”,在本地客户端中选择具体要测试的应用的安装包,如图3所示,在图3中,还对安装包的大小和类型进行了限定,这里仅仅是举例,不具有任何限定作用。例如,用户选择本地客户端的安装包ab.apk,将安装包ab.apk作为被测包。
此外,还可以通过网站下载来获取到待测试的应用的安装包,具体实现如下:用户通过点击网站下载,切换到网站下载方式,在输入框中输入应用的安装包的下载地址进行下载,如图4所示。
步骤S201,在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致,若不一致,则执行步骤S202;若一致,则执行步骤S205。
在本实施例中,辅助测试包用于对获取到的被测包进行测试,辅助测试包对被测包进行测试时,要求辅助测试包和被测包在同一个进程中运行,而辅助测试包和被测包在同一个进程中运行,则要求辅助测试包和被测包的签名一致。
在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致,可以确定是否可以利用辅助测试包对被测包进行测试,签名一致,则说明可以利用辅助测试包对被测包进行测试;签名不一致,则说明不可以利用辅助测试包对被测包进行测试,需要对被测包进行重签名操作,即,使被测包的签名与辅助测试包的签名一致,以实现辅助测试包对被测包的测试。
步骤S202,利用预设工具对被测包进行反编译,定位被测包的签名文件所在的目录。
apk反编译就是通过使用apk编译工具将apk文件中的源文件和资源文件反编译出来;可以在对得到的源文件和资源文件进行处理后再进行编译,以达到个性化定制等目的。
这里的预设工具可以是apktool,在辅助测试包与被测包签名不一致的情况下,利用预设工具对被测包进行反编译,具体地,通过使用apktool工具将被测包中的源文件和资源文件反编译出来,例如将源文件和资源文件释放到windows目录下,在windows目录中定位被测包的签名文件,查找到被测包的签名文件。
步骤S203,在目录下删除被测包的指定签名文件。
在windows目录下,删除写有被测包的签名的文件,例如,扩展名为ijks或keystore的文件。本领域技术人员应该理解,被测包中其他类型的签名文件也应该删除,这里仅仅是举例说明,不具有任何限定作用。
步骤S204,将辅助测试包的签名文件写入目录下,对被测包进行重打包。
具体地,将辅助测试包的签名文件写入到windows目录下,将写入的签名文件与被测包的其他文件打包,从而实现了对被测包重签名的操作,使得被测包的签名与辅助测试包的签名一致。
步骤S205,利用辅助测试包将预设脚本语言映射为Java语言对被测包进行测试。
本步骤中的预设脚本语言是Lua语言,Lua是用标准C语言编写的,代码简洁优美,几乎在所有操作系统和平台上都可以编译运行,它的优点是小巧和灵活,而且又是动态语言且是解释执行的,所以适合用在嵌入式环境里,且Lua具有易学易用等优点。本实施例中,辅助测试包是用Lua脚本编码得到的,被测包一般是利用Java语言进行编码的,因此,辅助测试包具有将Lua脚本映射成Java脚本的功能,通过映射后的Java脚本对被测包进行测试。
利用上述步骤,使得辅助测试包的签名和被测包的签名一致,辅助测试包和被测包可以在同一进程中运行,辅助测试包利用映射后的Java语言对被测包进行测试。
更具体地,在同一个进程中,辅助测试包通过运行被测包,获取被测包的名称,用于测试结束后生成测试报告。
可选地,利用辅助测试包运行被测包的应用程序组件,对被测包的应用程序组件进行功能测试,例如,UI测试,可以根据标识信息和/或类型信息检测控件是否存在;在检测到控件存在时,模拟控件输入行为,对控件的功能进行测试。举例来说,在根据标识信息和/或类型信息检测登录控件存在的情况下,输入账号和密码,点击登录按钮来模拟登录,检测登录控件是否能够正确登录。
根据本发明上述实施例提供的方法,通过检测被测包的签名与辅助测试包的签名是否一致,确定是否可以利用辅助测试包对被测包进行签名,若不一致,利用预设工具对被测包进行反编译,定位被测包的签名文件所在的目录;在目录下删除被测包的指定签名文件;将辅助测试包的签名文件写入目录下,对被测包进行重打包,使被测包的签名与辅助测试包的签名一致,利用辅助测试包将预设脚本语言映射为Java语言对被测包进行测试,解决了辅助测试包与被测包签名不一致时,无法在同一进程中运行,无法进行测试的问题,而且重签名操作是由服务端程序自动进行的,并不需要通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的,提高了测试效率,利用Lua语言易学易用的特点,降低了编程难度。
图5示出了根据本发明一个实施例的应用安装包的测试装置的结构框图。如图5所示,该装置包括:获取模块500、检测模块510、签名模块520和测试模块530。
获取模块500,适于获取待测试的应用的安装包作为被测包。
本实施例中的待测试的应用的安装包可以是后缀为“.apk”的文件,可以通过用户上传本地客户端中已下载的apk文件或者从网站即时下载apk文件的方式获取得到待测试的应用的安装包,对该应用的安装包进行测试,即,将获取到的待测试的应用安装包作为被测包。
检测模块510,适于在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致。
在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致,可以确定是否可以利用辅助测试包对被测包进行测试,签名一致,则说明可以利用辅助测试包对被测包进行测试;签名不一致,则说明不可以利用辅助测试包对被测包进行测试,需要对被测包进行重签名操作,即,使被测包的签名与辅助测试包的签名一致,以实现辅助测试包对被测包的测试。
签名模块520,适于在被测包的签名与辅助测试包的签名不一致的情况下,利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致。
测试模块530,适于利用辅助测试包对被测包进行测试。
利用签名模块使辅助测试包的签名和被测包的签名一致,然后,利用辅助测试包对被测包进行测试,例如,UI测试(界面测试)。
根据本发明上述实施例提供的装置,通过检测被测包的签名与辅助测试包的签名是否一致,确定是否可以利用辅助测试包对被测包进行签名,若不一致,利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致,利用辅助测试包对被测包进行测试,解决了辅助测试包与被测包签名不一致时,无法在同一进程中运行,无法进行测试的问题,而且重签名操作是由服务端程序自动进行的,并不需要通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的,提高了测试效率。
图6示出了根据本发明另一个实施例的应用安装包的测试装置的结构框图。如图6所示,该装置包括:获取模块600、检测模块610、签名模块620和测试模块630。
获取模块600,适于获取待测试的应用的安装包作为被测包。
检测模块610,适于在同一个进程中利用辅助测试包启动运行被测包时,检测被测包的签名与辅助测试包的签名是否一致。
签名模块620,适于在被测包的签名与辅助测试包的签名不一致的情况下,利用辅助测试包的签名对被测包进行重签名,使被测包的签名与辅助测试包的签名一致。
其中,签名模块620进一步包括:反编译单元621、定位单元622、删除单元623和打包单元624。
反编译单元621,适于利用预设工具对被测包进行反编译。
apk反编译就是通过使用apk编译工具将apk文件中的源文件和资源文件反编译出来;可以在对得到的源文件和资源文件进行处理后再进行编译,以达到个性化定制等目的。
这里的预设工具可以是apktool,在辅助测试包与被测包签名不一致的情况下,利用预设工具对被测包进行反编译。
定位单元622,适于定位被测包的签名文件所在的目录。
通过使用apktool工具将被测包中的源文件和资源文件反编译出来,例如将源文件和资源文件释放到windows目录下,在windows目录中定位被测包的签名文件,查找到被测包的签名文件。
删除单元623,适于在目录下删除被测包的指定签名文件。
在windows目录下,删除写有被测包的签名的文件,例如,扩展名为ijks或keystore的文件。本领域技术人员应该理解,被测包中其他类型的签名文件也应该删除,这里仅仅是举例说明,不具有任何限定作用。
打包单元624,适于将辅助测试包的签名文件写入目录下,对被测包进行重打包。
具体地,将辅助测试包的签名文件写入到windows目录下,将写入的签名文件与被测包的其他文件打包,从而实现了对被测包重签名的操作,使得被测包的签名与辅助测试包的签名一致。
测试模块630,适于利用辅助测试包对被测包进行测试。
可选地,测试模块630进一步适于:利用辅助测试包将预设脚本语言映射为Java语言对被测包进行测试。
具体地,预设脚本语言是Lua语言,Lua是用标准C语言编写的,代码简洁优美,几乎在所有操作系统和平台上都可以编译运行,它的优点是小巧和灵活,而且又是动态语言且是解释执行的,所以适合用在嵌入式环境里,且Lua具有易学易用等优点。本实施例中,辅助测试包是用Lua脚本编码得到的,被测包一般是利用Java语言进行编码的,因此,辅助测试包具有将Lua脚本映射成Java脚本的功能,通过映射后的Java脚本对被测包进行测试。
利用签名模块使得辅助测试包的签名和被测包的签名一致,辅助测试包和被测包可以在同一进程中运行,辅助测试包利用映射后的Java语言对被测包进行测试。
可选地,测试模块630进一步适于:利用辅助测试包运行被测包的应用程序组件,对被测包的应用程序组件进行功能测试
可选地,测试模块630进一步适于:通过运行被测包,获取被测包的名称。
可选地,测试模块630进一步适于:根据标识信息和/或类型信息检测控件是否存在;
在检测到控件存在时,模拟控件输入行为,对控件的功能进行测试。
根据本发明上述实施例提供的装置,通过检测被测包的签名与辅助测试包的签名是否一致,确定是否可以利用辅助测试包对被测包进行签名,若不一致,利用预设工具对被测包进行反编译,定位被测包的签名文件所在的目录;在目录下删除被测包的指定签名文件;将辅助测试包的签名文件写入目录下,对被测包进行重打包,使被测包的签名与辅助测试包的签名一致,利用辅助测试包将预设脚本语言映射为Java语言对被测包进行测试,解决了辅助测试包与被测包签名不一致时,无法在同一进程中运行,无法进行测试的问题,而且重签名操作是由服务端程序自动进行的,并不需要通过手动方式对被测包进行重签名,该操作是在后台运行的,用户是无感知的,提高了测试效率,利用Lua语言易学易用的特点,降低了编程难度。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用安装包的测试设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1、一种应用安装包的测试方法,其包括:
获取待测试的应用的安装包作为被测包;
在同一个进程中利用辅助测试包启动运行所述被测包时,检测所述被测包的签名与辅助测试包的签名是否一致;若不一致,则利用所述辅助测试包的签名对所述被测包进行重签名,使所述被测包的签名与辅助测试包的签名一致;
利用所述辅助测试包对所述被测包进行测试。
A2、根据A1所述的方法,所述利用所述辅助测试包的签名对所述被测包进行重签名进一步包括:
利用预设工具对所述被测包进行反编译,定位所述被测包的签名文件所在的目录;
在所述目录下删除所述被测包的指定签名文件;
将所述辅助测试包的签名文件写入所述目录下,对所述被测包进行重打包。
A3、根据A1或A2所述的方法,所述利用辅助测试包对所述被测包进行测试进一步包括:利用辅助测试包将预设脚本语言映射为Java语言对所述被测包进行测试。
A4、根据A1-A3任一项所述的方法,所述利用辅助测试包对所述被测包进行测试进一步包括:利用所述辅助测试包运行所述被测包的应用程序组件,对所述被测包的应用程序组件进行功能测试。
A5、根据A4所述的方法,所述利用辅助测试包对所述被测包进行测试还包括:通过运行所述被测包,获取所述被测包的名称。
A6、根据A4所述的方法,所述对被测包的应用程序组件进行功能测试进一步包括:
根据标识信息和/或类型信息检测控件是否存在;
在检测到控件存在时,模拟控件输入行为,对所述控件的功能进行测试。
本发明还公开了:B7、一种应用安装包的测试装置,其包括:
获取模块,适于获取待测试的应用的安装包作为被测包;
检测模块,适于在同一个进程中利用辅助测试包启动运行所述被测包时,检测所述被测包的签名与辅助测试包的签名是否一致;
签名模块,适于在所述被测包的签名与辅助测试包的签名不一致的情况下,利用所述辅助测试包的签名对所述被测包进行重签名,使所述被测包的签名与辅助测试包的签名一致;
测试模块,适于利用所述辅助测试包对所述被测包进行测试。
B8、根据B7所述的装置,所述签名模块进一步包括:
反编译单元,适于利用预设工具对所述被测包进行反编译;
定位单元,适于定位所述被测包的签名文件所在的目录;
删除单元,适于在所述目录下删除所述被测包的指定签名文件;
打包单元,适于将所述辅助测试包的签名文件写入所述目录下,对所述被测包进行重打包。
B9、根据B7或B8所述的装置,所述测试模块进一步适于:利用辅助测试包将预设脚本语言映射为Java语言对所述被测包进行测试。
B10、根据B7-B9任一项所述的装置,所述测试模块进一步适于:利用所述辅助测试包运行所述被测包的应用程序组件,对所述被测包的应用程序组件进行功能测试。
B11、根据B10所述的装置,所述测试模块进一步适于:通过运行所述被测包,获取所述被测包的名称。
B12、根据B10所述的装置,所述测试模块进一步适于:
根据标识信息和/或类型信息检测控件是否存在;
在检测到控件存在时,模拟控件输入行为,对所述控件的功能进行测试。

Claims (10)

1.一种应用安装包的测试方法,其包括:
获取待测试的应用的安装包作为被测包;
在同一个进程中利用辅助测试包启动运行所述被测包时,检测所述被测包的签名与辅助测试包的签名是否一致;若不一致,则利用所述辅助测试包的签名对所述被测包进行重签名,使所述被测包的签名与辅助测试包的签名一致;
利用所述辅助测试包对所述被测包进行测试。
2.根据权利要求1所述的方法,所述利用所述辅助测试包的签名对所述被测包进行重签名进一步包括:
利用预设工具对所述被测包进行反编译,定位所述被测包的签名文件所在的目录;
在所述目录下删除所述被测包的指定签名文件;
将所述辅助测试包的签名文件写入所述目录下,对所述被测包进行重打包。
3.根据权利要求1或2所述的方法,所述利用辅助测试包对所述被测包进行测试进一步包括:利用辅助测试包将预设脚本语言映射为Java语言对所述被测包进行测试。
4.根据权利要求1-3任一项所述的方法,所述利用辅助测试包对所述被测包进行测试进一步包括:利用所述辅助测试包运行所述被测包的应用程序组件,对所述被测包的应用程序组件进行功能测试。
5.根据权利要求4所述的方法,所述利用辅助测试包对所述被测包进行测试还包括:通过运行所述被测包,获取所述被测包的名称。
6.根据权利要求4所述的方法,所述对被测包的应用程序组件进行功能测试进一步包括:
根据标识信息和/或类型信息检测控件是否存在;
在检测到控件存在时,模拟控件输入行为,对所述控件的功能进行测试。
7.一种应用安装包的测试装置,其包括:
获取模块,适于获取待测试的应用的安装包作为被测包;
检测模块,适于在同一个进程中利用辅助测试包启动运行所述被测包时,检测所述被测包的签名与辅助测试包的签名是否一致;
签名模块,适于在所述被测包的签名与辅助测试包的签名不一致的情况下,利用所述辅助测试包的签名对所述被测包进行重签名,使所述被测包的签名与辅助测试包的签名一致;
测试模块,适于利用所述辅助测试包对所述被测包进行测试。
8.根据权利要求7所述的装置,所述签名模块进一步包括:
反编译单元,适于利用预设工具对所述被测包进行反编译;
定位单元,适于定位所述被测包的签名文件所在的目录;
删除单元,适于在所述目录下删除所述被测包的指定签名文件;
打包单元,适于将所述辅助测试包的签名文件写入所述目录下,对所述被测包进行重打包。
9.根据权利要求7或8所述的装置,所述测试模块进一步适于:利用辅助测试包将预设脚本语言映射为Java语言对所述被测包进行测试。
10.根据权利要求7-9任一项所述的装置,所述测试模块进一步适于:利用所述辅助测试包运行所述被测包的应用程序组件,对所述被测包的应用程序组件进行功能测试。
CN201510591604.2A 2015-09-16 2015-09-16 应用安装包的测试方法及装置 Pending CN105095090A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510591604.2A CN105095090A (zh) 2015-09-16 2015-09-16 应用安装包的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510591604.2A CN105095090A (zh) 2015-09-16 2015-09-16 应用安装包的测试方法及装置

Publications (1)

Publication Number Publication Date
CN105095090A true CN105095090A (zh) 2015-11-25

Family

ID=54575585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510591604.2A Pending CN105095090A (zh) 2015-09-16 2015-09-16 应用安装包的测试方法及装置

Country Status (1)

Country Link
CN (1) CN105095090A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389263A (zh) * 2015-12-24 2016-03-09 北京奇虎科技有限公司 应用软件权限监控方法、系统及设备
CN105825085A (zh) * 2016-03-16 2016-08-03 广州彩瞳网络技术有限公司 应用程序的处理方法及装置
CN106294133A (zh) * 2016-07-29 2017-01-04 腾讯科技(深圳)有限公司 一种应用程序安装包的检测方法、相关装置及系统
CN106445807A (zh) * 2016-08-29 2017-02-22 Tcl集团股份有限公司 用于智能终端的应用安装包检测方法及装置
CN107678755A (zh) * 2017-09-13 2018-02-09 北京京东尚科信息技术有限公司 安装包打包的方法、装置、电子设备和计算机可读介质
CN107798244A (zh) * 2016-09-07 2018-03-13 杭州萤石网络有限公司 一种检测远程代码执行漏洞的方法及装置
CN107957954A (zh) * 2017-12-19 2018-04-24 郑州云海信息技术有限公司 一种Linux系统下提高测试数据安全性的方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140109072A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Application wrapping for application management framework
CN104252373A (zh) * 2014-10-17 2014-12-31 北京奇虎科技有限公司 清除应用数据的方法及装置
CN104461898A (zh) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 应用测试的方法、中控服务器、测试终端及系统
CN104484585A (zh) * 2014-11-26 2015-04-01 北京奇虎科技有限公司 一种应用程序安装包的处理方法、装置及移动设备
CN104714884A (zh) * 2015-01-05 2015-06-17 中山大学 一种检查web应用和Android应用一致性的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140109072A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Application wrapping for application management framework
CN104252373A (zh) * 2014-10-17 2014-12-31 北京奇虎科技有限公司 清除应用数据的方法及装置
CN104484585A (zh) * 2014-11-26 2015-04-01 北京奇虎科技有限公司 一种应用程序安装包的处理方法、装置及移动设备
CN104461898A (zh) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 应用测试的方法、中控服务器、测试终端及系统
CN104714884A (zh) * 2015-01-05 2015-06-17 中山大学 一种检查web应用和Android应用一致性的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FINDYOU: "Android反编译(三)之重签名", 《博客园》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389263A (zh) * 2015-12-24 2016-03-09 北京奇虎科技有限公司 应用软件权限监控方法、系统及设备
CN105389263B (zh) * 2015-12-24 2017-12-19 北京奇虎科技有限公司 应用软件权限监控方法、系统及设备
CN105825085A (zh) * 2016-03-16 2016-08-03 广州彩瞳网络技术有限公司 应用程序的处理方法及装置
CN105825085B (zh) * 2016-03-16 2019-02-15 广州优视网络科技有限公司 应用程序的处理方法及装置
CN106294133A (zh) * 2016-07-29 2017-01-04 腾讯科技(深圳)有限公司 一种应用程序安装包的检测方法、相关装置及系统
CN106445807A (zh) * 2016-08-29 2017-02-22 Tcl集团股份有限公司 用于智能终端的应用安装包检测方法及装置
CN106445807B (zh) * 2016-08-29 2020-11-10 Tcl科技集团股份有限公司 用于智能终端的应用安装包检测方法及装置
CN107798244A (zh) * 2016-09-07 2018-03-13 杭州萤石网络有限公司 一种检测远程代码执行漏洞的方法及装置
CN107798244B (zh) * 2016-09-07 2020-09-04 杭州萤石网络有限公司 一种检测远程代码执行漏洞的方法及装置
CN107678755A (zh) * 2017-09-13 2018-02-09 北京京东尚科信息技术有限公司 安装包打包的方法、装置、电子设备和计算机可读介质
CN107678755B (zh) * 2017-09-13 2021-01-26 北京京东尚科信息技术有限公司 安装包打包的方法、装置、电子设备和计算机可读介质
CN107957954A (zh) * 2017-12-19 2018-04-24 郑州云海信息技术有限公司 一种Linux系统下提高测试数据安全性的方法和系统

Similar Documents

Publication Publication Date Title
CN105095090A (zh) 应用安装包的测试方法及装置
CN109491695B (zh) 一种集成安卓应用的增量更新方法
US8694988B2 (en) Runtime extensions
US10795652B2 (en) Generating native code from intermediate language code for an application
US8683462B2 (en) Handling calls to native code in a managed code environment
CN106775723B (zh) 基于Android平台的系统固件定制的方法和Android设备
CN107450941B (zh) 自动打包方法、装置、存储介质和计算机设备
JP5663006B2 (ja) ランタイム環境を構築するためのシステムおよび方法
US10331824B2 (en) Dynamically loaded system-level simulation
CN108334437A (zh) 一种基于持续集成及自动化测试的软件持续交付验收方法
CN102981915B (zh) 一种应用程序间通信方法及装置
US20130167123A1 (en) Application debugging
CN104484585A (zh) 一种应用程序安装包的处理方法、装置及移动设备
CN114911519A (zh) 用于计算设备的共享软件库
US20040054946A1 (en) System and method for assessing compatibility risk
US20110119653A1 (en) Incremental packaging
CN103793248B (zh) 一种应用程序升级的方法及装置
CN106355049A (zh) 一种加固安卓安装包的动态链接库so文件的方法和装置
CN108920359B (zh) 应用程序的测试方法、装置、存储介质和电子装置
CN107704238A (zh) 一种对项目进行打包的方法及装置
CN103034546B (zh) iOS系统中应用程序间通信的方法及装置
CN110515647A (zh) 一种静态资源管理方法、装置、设备和存储介质
CN105573915A (zh) 一种基于代码覆盖率的测试方法和装置
CN105677317A (zh) 一种生成代码文档的方法和装置
CN108694049B (zh) 一种更新软件的方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20151125

RJ01 Rejection of invention patent application after publication