CN113342660A - 文件测试方法、装置、系统、电子设备及可读存储介质 - Google Patents
文件测试方法、装置、系统、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113342660A CN113342660A CN202110656377.2A CN202110656377A CN113342660A CN 113342660 A CN113342660 A CN 113342660A CN 202110656377 A CN202110656377 A CN 202110656377A CN 113342660 A CN113342660 A CN 113342660A
- Authority
- CN
- China
- Prior art keywords
- target
- program package
- sdk
- shared library
- library file
- 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
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种文件测试方法、装置、系统、电子设备及可读存储介质,其中的方法包括:通过SDK检测目标目录下是否存在目标程序包,在目标目录下存在目标程序包的情况下,通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息,在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。由于整个测试过程避免了将第一共享库文件打包成SDK,再将SDK发给业务方以及业务方参与的流程,从而简化了测试流程,缩短了测试时间,提高了测试效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及文件测试方法、装置、系统、电子设备及可读存储介质。
背景技术
共享库(so,shared object)文件是编译好的可以供其他程序使用的代码和数据,是二进制的动态连接库文件,作用相当于windows下的动态链接库(DLL,Dynamic LinkLibrary)文件。为了减少应用程序的开发周期,业务方的应用程序的开发通常会使用到软件开发工具包(SDK,Software Development Kit),该SDK包含已发布的so文件。在共享库文件发布前,需要对共享库文件进行测试,若测试没有问题,则测试通过,否则需要按照现有测试流程重新测试。
现有技术中对共享库文件进行测试的流程为:SDK提供方编写本地(Native)代码,并编译Native代码,得到共享库文件,将共享库文件打包成SDK,再将SDK发给业务方,业务方将SDK集成到业务方开发的Android应用程序包(APK,Application Package)里,由测试人员下载安装该APK进行测试,因此,整个测试流程比较繁琐,测试效率较低。
发明内容
本发明实施例的目的在于提供一种文件测试方法、装置、系统、电子设备及可读存储介质,以实现简化共享库文件测试流程,提高共享库文件测试效率。
具体技术方案如下:
在本发明实施的第一方面,首先提供了一种文件测试方法,应用于包括电子设备和测试设备的系统;包括:
所述电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,以得到目标程序包;
所述电子设备采用命名信息对所述目标程序包进行命名,并采用第一签名信息对所述目标程序包进行签名,其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息;
所述电子设备将所述目标程序包发送至所述测试设备的目标目录;
所述测试设备通过软件开发工具包SDK检测所述目标目录下是否存在所述目标程序包;
在所述目标目录下存在所述目标程序包的情况下,所述测试设备通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,所述测试设备通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件。
在本发明实施的第二方面,提供了一种文件测试方法,执行于测试设备,包括:
通过软件开发工具包SDK检测目标目录下是否存在目标程序包;
在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件。
在本发明实施的第三方面,提供了一种文件测试方法,执行于电子设备,包括:
通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,以得到目标程序包;
采用命名信息对所述目标程序包进行命名,并采用第一签名信息对所述目标程序包进行签名,其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息;
将所述目标程序包发送至所述测试设备的目标目录。
在本发明实施的第四方面,提供了一种文件测试系统,包括:
电子设备,用于通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,以得到目标程序包;
所述电子设备,还用于采用命名信息对所述目标程序包进行命名,并采用第一签名信息对所述目标程序包进行签名,其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息;
所述电子设备,还用于将所述目标程序包发送至所述测试设备的目标目录;
测试设备,用于通过软件开发工具包SDK检测所述目标目录下是否存在所述目标程序包;
所述测试设备,还用于在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
所述测试设备,还用于在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件。
在本发明实施的第五方面,提供了一种文件测试装置,设置于测试设备,包括:
检测模块,用于通过软件开发工具包SDK检测目标目录下是否存在目标程序包;
获取模块,用于在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
第一加载模块,用于在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件。
在本发明实施的第六方面,提供了一种一种文件测试装置,设置于电子设备,包括:
打包模块,用于通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,以得到目标程序包;
签名模块,用于采用命名信息对所述目标程序包进行命名,并采用第一签名信息对所述目标程序包进行签名,其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息;
发送模块,用于将所述目标程序包发送至所述测试设备的目标目录。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述所述的文件测试方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述的文件测试方法。
本发明实施例提供的文件测试方法,通过SDK检测目标目录下是否存在目标程序包,在目标目录下存在目标程序包的情况下,通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息,在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。实现了在需要第一共享库文件进行测试时,只需将包括第一共享库文件的目标程序包存放在目标目录,由SDK自动释放并加载运行第一共享库文件,以对第一共享库文件进行测试。由于整个测试过程避免了将第一共享库文件打包成SDK,再将SDK发给业务方,业务方将SDK集成到业务方开发的APK里,由测试人员下载安装该APK进行测试的流程,且整个测试过程无需业务方参与,从而节省了测试流程,缩短了测试时间,提高了测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种文件测试方法的系统架构图;
图2为本发明实施例中提供的一种文件测试方法的步骤流程图;
图3是本发明实施例提供的另一种文件测试方法的步骤流程图;
图4是本发明实施例提供的又一种文件测试方法的步骤流程图;
图5是本发明实施例提供的一种文件测试装置的结构示意图;
图6是本发明实施例提供的另一种文件测试装置的结构示意图;
图7为本发明实施例中提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
参照图1,图1是本发明实施例提供的一种文件测试方法的系统架构图,该系统包括电子设备和测试设备,电子设备可以为台式电脑、笔记本电脑等设备。测试设备可以为智能手机、平板电脑等设备。基于图1,本发明实施例提供了一种文件测试方法。参照图2,图2是本发明实施例提供的一种文件测试方法的步骤流程图,该方法包括:
步骤201、电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到程序包,以得到打包后的程序包。
步骤202、电子设备采用命名信息对打包后的程序包进行命名,并采用第一签名信息对打包后的程序包进行签名,得到命名和签名后的目标程序包,其中,命名信息为电子设备根据第一共享库文件的第一版本标识确定的信息。
步骤201和步骤202中,第一共享库文件为待测共享库文件。待测共享库文件可以为需要迭代测试的共享库文件。在需要对待测共享库文件进行测试时,可以先通过目标开发工具生成程序包;将待测共享库文件打包到该程序包,以得到打包后的程序包。其中,该程序包可以为安卓应用程序包,目标开发工具例如为安卓集成开发工具(AndroidStudio),通过Android Studio先生成一个安卓应用程序包,生成的安卓应用程序包例如为shell.apk,该安卓应用程序包为空壳应用程序包,然后将待测共享库文件打包到shell.apk,得到打包后的程序包。可以将待测共享库文件打入到shell.apk的目录下,实现将待测共享库文件打包到shell.apk,shell.apk的目录例如为lib/x86、lib/armeabi、lib/armeabi-v7a、lib/arm64-v8a等,具体的,shell.apk的目录取决于处理器的类型,处理器的类型不同,shell.apk的目录不同。
将待测共享库文件打包到shell.apk,得到打包后的程序包后,可以根据待测共享库文件的第一版本标识,确定命名信息,然后采用该命名信息对打包后的程序包进行命名,并采用第一签名信息对打包后的程序包进行签名。其中,根据待测共享库文件的第一版本标识,确定命名信息的过程可以参照如下示例:待测共享库文件的第一版本标识例如为v1.2,确定的命名信息例如为:shell_sign_v1.2,然后采用shell_sign_v1.2对打包后的程序包进行命名,将打包后的程序包命名为shell_sign_v1.2.apk,并采用第一签名信息对打包后的程序包进行签名,得到命名和签名后的目标程序包。
需要说明的是,上述步骤201和步骤202均为SDK发布者的逻辑,第一签名信息用于标识SDK发布者信息。
步骤203、在得到所述目标程序包后,电子设备将目标程序包发送至测试设备的目标目录。
本发明实施例中,可以将测试设备的操作系统的临时目录作为目标目录,临时目录例如为/data/local/tmp,临时目录可以用于缓存数据。电子设备将目标程序包发送至测试设备的目标目录,以将目标程序包存放在测试设备的目标目录下。
步骤204、测试设备通过软件开发工具包SDK检测目标目录下是否存在目标程序包。
可选的,测试设备通过软件开发工具包SDK检测目标目录下是否存在目标程序包可以通过如下方式实现:
在已集成SDK的目标应用程序启动运行时,调用SDK的初始化函数,以通过初始化函数检测目标目录下是否存在目标程序包;
其中,初始化函数为在软件开发工具包中预先设置的函数。
步骤205、在目标目录下存在目标程序包的情况下,测试设备通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息。
其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息,所述命名信息为所述电子设备对打包后的程序包进行命名时采用的信息,所述第一签名信息为所述电子设备对打包后的程序包进行签名时采用的信息。
步骤206、在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,测试设备通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。
本实施例中,当第一签名信息和第二签名信息相同时,Android操作系统才会认为第一共享库文件和第二共享库文件是同一个发布者发布的文件,即认为第一共享库文件为合法的,从而实现通过签名信息验证第一共享库文件的合法性。
本实施例中,在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,测试设备通过该SDK可以将目标程序包中的第一共享库文件释放到已集成有该SDK的目标应用程序的私有目录中,并通过系统函数System.load加载已经释放到该私有目录下的第一共享库文件,从而加载运行该私有目录下的第一共享库文件,实现对第一共享库文件的测试。
本实施例提供的文件测试方法,电子设备得到打包后的程序包,并采用命名信息对打包后的程序包进行命名,并采用第一签名信息对打包后的程序包进行签名,得到命名和签名后的目标程序包,在得到目标程序包后,电子设备将目标程序包发送至测试设备的目标目录,测试设备上的SDK检测目标目录下是否存在目标程序包,在目标目录下存在目标程序包的情况下,测试设备通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息,在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,测试设备通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。实现了在需要对第一共享库文件进行测试时,只需将包括第一共享库文件的目标程序包存放在测试设备的目标目录,由测试设备上的SDK自动释放并加载运行第一共享库文件,以对第一共享库文件进行测试。由于整个测试过程避免了将第一共享库文件打包成SDK,再将SDK发给业务方,业务方将SDK集成到业务方开发的APK里,由测试人员下载安装该APK进行测试的流程,且整个测试过程无需业务方参与,从而节省了测试流程,缩短了测试时间,提高了测试效率。
参照图3,图3是本发明实施例提供的另一种文件测试方法的步骤流程图,该方法执行于测试设备,该方法包括如下步骤:
步骤301、通过软件开发工具包SDK检测目标目录下是否存在目标程序包。
步骤302、在目标目录下存在目标程序包的情况下,通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息。
步骤303、在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。
其中,所述目标程序包为电子设备向所述测试设备的目标目录发送的,所述目标程序包为所述电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,且对打包后的程序包进行命名和签名后得到的。
本实施例提供的文件测试方法,通过SDK检测目标目录下是否存在目标程序包,在目标目录下存在目标程序包的情况下,通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息,在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。实现了在需要对第一共享库文件进行测试时,只需将包括第一共享库文件的目标程序包存放在测试设备的目标目录,由SDK自动释放并加载运行第一共享库文件,以对第一共享库文件进行测试。由于整个测试过程避免了将第一共享库文件打包成SDK,再将SDK发给业务方,业务方将SDK集成到业务方开发的APK里,由测试人员下载安装该APK进行测试的流程,且整个测试过程无需业务方参与,从而节省了测试流程,缩短了测试时间,提高了测试效率。
需要说明的是,本发明实施例提供的文件测试方法,也可以适用于设备上的应用程序发生本地代码(Native代码)崩溃,需要对修改后的本地代码重新编译后得到的共享库文件进行测试的场景。此场景下,现有技术的方案为:在SDK提供方没有业务方的APK的源码和设备的root权限(root权限是Linux系统中的超级管理员用户帐户,该用户帐户拥有整个系统的最高权限)的情况下,SDK提供方只能通过分析日志,然后修改SDK的Native代码,并对修改后Native代码重新编译,得到共享库文件,将共享库文件打包到SDK,再将包含共享库文件的SDK发给业务方,包含共享库文件的SDK再次集成到APK进行测试。因此,整个测试流程比较繁琐,耗时太长,测试效率较低。而通过本发明实施例提供的文件测试方法,当技术人员需要不断重复替换共享库文件进行测试时,只需将重新编译得到的共享库文件打包到程序包,以得到打包后的程序包,并根据该共享库文件的第一版本标识,确定命名信息,并采用该命名信息对打包后的程序包进行命名,以及对采用第一签名信息对打包后的程序包进行签名,得到命名和签名后的目标程序包,由电子设备将将目标程序包发送至测试设备的目标目录下,即可以通过测试设备实现对该共享库文件进行测试,从而提高测试效率。
参照图4,图4是本发明实施例提供的又一种文件测试方法的步骤流程图,该方法执行于测试设备,该方法包括如下步骤:
步骤401、在已集成SDK的目标应用程序启动运行时,调用SDK的初始化函数,以通过初始化函数检测目标目录下是否存在目标程序包。
在目标目录下存在目标程序包的情况下,执行步骤403;在目标目录下未存在目标程序包的情况下,执行步骤405。
步骤402、通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息。
需要说明的是,由于命名信息是电子设备根据第一共享库文件的第一版本标识确定的信息,因此,可以根据命名信息,获得命名信息中的第一版本标识,从而可以确定第一版本标识对应的第一版本。
步骤403、通过SDK判断第一版本是否高于SDK中的第二共享库文件的第二版本。
其中,第二共享库文件为SDK中预先设置的共享库文件。在SDK中预先设置的共享库文件例如为已发布的V1.0版本的文件,即第二共享库文件的第二版本例如为v1.0,若第一共享库文件的第一版本标识为v1.1或v1.2等,则第一版本标识对应的第一版本高于第二版本。
在第一版本高于SDK中的第二共享库文件的第二版本的情况下,执行步骤404;在目标目录下未存在目标程序包的情况下,或者,在第一版本低于或等于第二版本的情况下执行步骤406。
步骤404、通过SDK判断第一签名信息是否与第二签名信息一致。
在通过SDK判断第一签名信息与第二签名信息一致的情况下,执行步骤405;在通过SDK判断第一签名信息与第二签名信息不一致的情况下,执行步骤406。
步骤405、通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。
步骤406、通过SDK释放第二共享库文件,并加载运行第二共享库文件。
通过SDK判断第一签名信息与第二签名信息不一致的情况下,意味着SDK中的第二共享库文件是正常的,直接加载运行第二共享库文件即可。
本实施例提供的文件测试方法,实现了在需要第一共享库文件进行测试时,只需将包括第一共享库文件的目标程序包存放在目标目录,由SDK自动释放并加载运行第一共享库文件,以对第一共享库文件进行测试。由于整个测试过程避免了将第一共享库文件打包成SDK,再将SDK发给业务方,业务方将SDK集成到业务方开发的APK里,由测试人员下载安装该APK进行测试的流程,且整个测试过程无需业务方参与,从而节省了测试流程,缩短了测试时间,提高了测试效率。
参照图5,图5是本发明实施例提供的一种文件测试装置的结构示意图,该装置设置于测试设备,该装置500包括:
检测模块510,用于通过软件开发工具包SDK检测目标目录下是否存在目标程序包;
获取模块520,用于在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
第一加载模块530,用于在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件;
其中,所述目标程序包为电子设备向所述测试设备的目标目录发送的,所述目标程序包为所述电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,且对打包后的程序包进行命名和签名后得到的。
本实施例提供的文件测试装置,通过SDK检测目标目录下是否存在目标程序包,在目标目录下存在目标程序包的情况下,通过SDK获取目标程序包的命名信息、以及目标程序包的第一签名信息,在命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且第一签名信息与SDK中预先设置的第二签名信息一致的情况下,通过SDK释放目标程序包中的第一共享库文件,并加载运行第一共享库文件。实现了在需要对第一共享库文件进行测试时,只需将包括第一共享库文件的目标程序包存放在测试设备的目标目录,由SDK自动释放并加载运行第一共享库文件,以对第一共享库文件进行测试。由于整个测试过程避免了将第一共享库文件打包成SDK,再将SDK发给业务方,业务方将SDK集成到业务方开发的APK里,由测试人员下载安装该APK进行测试的流程,且整个测试过程无需业务方参与,从而节省了测试流程,缩短了测试时间,提高了测试效率。
可选的,参照图6,图6是本发明实施例提供的另一种文件测试装置的结构示意图,该装置设置于测试设备,该装置600包括:
第一判断模块610,用于通过所述SDK判断所述第一版本是否高于所述SDK中的第二共享库文件的第二版本,其中,所述第二共享库文件为所述SDK中预先设置的文件;
第二判断模块620,用于在所述第一版本高于所述第二版本的情况下,通过所述SDK判断所述第一签名信息是否与所述第二签名信息一致;
第二加载模块630,用于在所述第一签名信息与所述第二签名信息不一致的情况下,通过所述SDK释放所述第二共享库文件,并加载运行所述第二共享库文件。
可选的,还包括:
所述第二加载模块630,还用于在所述目标目录下未存在所述目标程序包的情况下,或者,在所述第一版本低于或等于所述第二版本的情况下,通过所述SDK释放所述第二共享库文件,并加载运行所述第二共享库文件。
可选的,检测模块510,具体用于在已集成所述SDK的目标应用程序启动运行时,调用所述SDK的初始化函数,以通过所述初始化函数检测所述目标目录下是否存在所述目标程序包;
其中,所述初始化函数为在所述软件开发工具包中预先设置的函数。
可选的,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息,所述命名信息为所述电子设备对打包后的程序包进行命名时采用的信息,所述第一签名信息为所述电子设备对打包后的程序包进行签名时采用的信息。
本发明实施例还提供了一种电子设备,图7为本发明实施例中提供的一种电子设备的结构示意图。如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
通过软件开发工具包SDK检测目标目录下是否存在目标程序包;
在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件;
其中,目标程序包为电子设备向测试设备的目标目录发送的,目标程序包为电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到程序包,且对打包后的程序包进行命名和签名后得到的。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的文件测试方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的文件测试方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种文件测试方法,其特征在于,执行于测试设备,包括:
通过软件开发工具包SDK检测目标目录下是否存在目标程序包;
在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件;
其中,所述目标程序包为电子设备向所述测试设备的目标目录发送的,所述目标程序包为所述电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,且对打包后的程序包进行命名和签名后得到的。
2.根据权利要求1所述的方法,其特征在于,在所述通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件之前,还包括:
通过所述SDK判断所述第一版本是否高于所述SDK中的第二共享库文件的第二版本;
在所述第一版本高于所述第二版本的情况下,通过所述SDK判断所述第一签名信息是否与所述第二签名信息一致;
在所述第一签名信息与所述第二签名信息不一致的情况下,通过所述SDK释放所述第二共享库文件,并加载运行所述第二共享库文件。
3.根据权利要求2所述的方法,其特征在于,还包括:
在所述目标目录下未存在所述目标程序包的情况下,或者,在所述第一版本低于或等于所述第二版本的情况下,通过所述SDK释放所述第二共享库文件,并加载运行所述第二共享库文件。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述通过软件开发工具包SDK检测目标目录下是否存在目标程序包,包括:
在已集成所述SDK的目标应用程序启动运行时,调用所述SDK的初始化函数,以通过所述初始化函数检测所述目标目录下是否存在所述目标程序包;
其中,所述初始化函数为在所述软件开发工具包中预先设置的函数。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息,所述命名信息为所述电子设备对打包后的程序包进行命名时采用的信息,所述第一签名信息为所述电子设备对打包后的程序包进行签名时采用的信息。
6.一种文件测试方法,其特征在于,应用于包括电子设备和测试设备的系统;包括:
所述电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,以得到打包后的程序包;
所述电子设备采用命名信息对所述打包后的程序包进行命名,并采用第一签名信息对所述打包后的程序包进行签名,得到命名和签名后的目标程序包,其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息;
在得到所述目标程序包后,所述电子设备将所述目标程序包发送至所述测试设备的目标目录;
所述测试设备通过软件开发工具包SDK检测所述目标目录下是否存在所述目标程序包;
在所述目标目录下存在所述目标程序包的情况下,所述测试设备通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,所述测试设备通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件。
7.一种文件测试装置,其特征在于,设置于测试设备,包括:
检测模块,用于通过软件开发工具包SDK检测目标目录下是否存在目标程序包;
获取模块,用于在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
第一加载模块,用于在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件;
其中,所述目标程序包为电子设备向所述测试设备的目标目录发送的,所述目标程序包为所述电子设备通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,且对打包后的程序包进行命名和签名后得到的。
8.一种文件测试系统,其特征在于,包括:
电子设备,用于通过目标开发工具生成程序包,并将第一共享库文件打包到所述程序包,以得到打包后的程序包;
所述电子设备,还用于采用命名信息对所述打包后的程序包进行命名,并采用第一签名信息对所述打包后的程序包进行签名,得到命名和签名后的目标程序包,其中,所述命名信息为所述电子设备根据所述第一共享库文件的第一版本标识确定的信息;
所述电子设备,还用于在得到所述目标程序包后,将所述目标程序包发送至所述测试设备的目标目录;
测试设备,用于通过软件开发工具包SDK检测所述目标目录下是否存在所述目标程序包;
所述测试设备,还用于在所述目标目录下存在所述目标程序包的情况下,通过所述SDK获取所述目标程序包的命名信息、以及所述目标程序包的第一签名信息;
所述测试设备,还用于在所述命名信息中的第一版本标识对应的第一版本高于SDK中预先设置的第二共享库文件的第二版本,且所述第一签名信息与所述SDK中预先设置的第二签名信息一致的情况下,通过所述SDK释放所述目标程序包中的第一共享库文件,并加载运行所述第一共享库文件。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5中任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656377.2A CN113342660B (zh) | 2021-06-11 | 2021-06-11 | 文件测试方法、装置、系统、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656377.2A CN113342660B (zh) | 2021-06-11 | 2021-06-11 | 文件测试方法、装置、系统、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342660A true CN113342660A (zh) | 2021-09-03 |
CN113342660B CN113342660B (zh) | 2023-07-07 |
Family
ID=77476983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110656377.2A Active CN113342660B (zh) | 2021-06-11 | 2021-06-11 | 文件测试方法、装置、系统、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342660B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918235A (zh) * | 2021-09-17 | 2022-01-11 | 北京房江湖科技有限公司 | 应用加载的方法及装置、计算机程序产品和存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956513A (en) * | 1997-08-07 | 1999-09-21 | Mci Communications Corporation | System and method for automated software build control |
US20030093717A1 (en) * | 2001-09-26 | 2003-05-15 | International Business Machines Corporation | Test programs for enterprise web applications |
US20050034120A1 (en) * | 2003-08-07 | 2005-02-10 | International Business Machines Corperation | Systems and methods for cooperatively building public file packages |
US20050097133A1 (en) * | 2003-10-31 | 2005-05-05 | Quoc Pham | Producing software distribution kit (SDK) volumes |
US20060225072A1 (en) * | 2004-05-18 | 2006-10-05 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
US20160026366A1 (en) * | 2014-07-22 | 2016-01-28 | Runfeng LUAN | Method and system for customizing mobile terminal application |
CN110336714A (zh) * | 2019-07-05 | 2019-10-15 | 中邮建技术有限公司 | 一种手机app访问网络信令机制的测试方法 |
CN110414217A (zh) * | 2019-07-31 | 2019-11-05 | 广东小天才科技有限公司 | 应用程序的安全运行方法、装置、电子设备和存储介质 |
CN111045722A (zh) * | 2019-12-06 | 2020-04-21 | 深圳前海环融联易信息科技服务有限公司 | 智能合约打包方法、装置、系统、计算机设备及存储介质 |
CN111858330A (zh) * | 2020-07-16 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种测试脚本的部署方法、装置、设备及可读介质 |
CN112115049A (zh) * | 2020-08-27 | 2020-12-22 | 北京奇艺世纪科技有限公司 | 应用程序测试方法、装置、设备和计算机可读存储介质 |
US20210073374A1 (en) * | 2019-09-09 | 2021-03-11 | Mcafee, Llc | Securing an application framework from shared library sideload vulnerabilities |
-
2021
- 2021-06-11 CN CN202110656377.2A patent/CN113342660B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956513A (en) * | 1997-08-07 | 1999-09-21 | Mci Communications Corporation | System and method for automated software build control |
US20030093717A1 (en) * | 2001-09-26 | 2003-05-15 | International Business Machines Corporation | Test programs for enterprise web applications |
US20050034120A1 (en) * | 2003-08-07 | 2005-02-10 | International Business Machines Corperation | Systems and methods for cooperatively building public file packages |
US20050097133A1 (en) * | 2003-10-31 | 2005-05-05 | Quoc Pham | Producing software distribution kit (SDK) volumes |
US20060225072A1 (en) * | 2004-05-18 | 2006-10-05 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
US20160026366A1 (en) * | 2014-07-22 | 2016-01-28 | Runfeng LUAN | Method and system for customizing mobile terminal application |
CN110336714A (zh) * | 2019-07-05 | 2019-10-15 | 中邮建技术有限公司 | 一种手机app访问网络信令机制的测试方法 |
CN110414217A (zh) * | 2019-07-31 | 2019-11-05 | 广东小天才科技有限公司 | 应用程序的安全运行方法、装置、电子设备和存储介质 |
US20210073374A1 (en) * | 2019-09-09 | 2021-03-11 | Mcafee, Llc | Securing an application framework from shared library sideload vulnerabilities |
CN111045722A (zh) * | 2019-12-06 | 2020-04-21 | 深圳前海环融联易信息科技服务有限公司 | 智能合约打包方法、装置、系统、计算机设备及存储介质 |
CN111858330A (zh) * | 2020-07-16 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种测试脚本的部署方法、装置、设备及可读介质 |
CN112115049A (zh) * | 2020-08-27 | 2020-12-22 | 北京奇艺世纪科技有限公司 | 应用程序测试方法、装置、设备和计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
彭国军;李晶雯;孙润康;肖云倡;: "Android恶意软件检测研究与进展", 武汉大学学报(理学版), no. 01 * |
胡文君;赵双;陶敬;马小博;陈亮;: "一种针对Android平台恶意代码的检测方法及系统实现", 西安交通大学学报, no. 10 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918235A (zh) * | 2021-09-17 | 2022-01-11 | 北京房江湖科技有限公司 | 应用加载的方法及装置、计算机程序产品和存储介质 |
CN113918235B (zh) * | 2021-09-17 | 2023-11-17 | 贝壳找房(北京)科技有限公司 | 应用加载的方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342660B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8621613B1 (en) | Detecting malware in content items | |
CN109299015B (zh) | 一种软件测试方法、装置及系统 | |
CN102043649A (zh) | 插件下载控制方法及插件下载控制系统 | |
CN111782523A (zh) | 云端服务部署测试方法、装置、电子设备和存储介质 | |
CN110955409A (zh) | 在云平台上创建资源的方法和装置 | |
US9779014B2 (en) | Resilient mock object creation for unit testing | |
CN113342660B (zh) | 文件测试方法、装置、系统、电子设备及可读存储介质 | |
US9348977B1 (en) | Detecting malware in content items | |
CN111352631B (zh) | 一种接口兼容性检测方法及装置 | |
CN112965731A (zh) | 基于Tinker的Flutter热更新方法、装置、设备及存储介质 | |
CN116483888A (zh) | 程序评估方法及装置、电子设备和计算机可读存储介质 | |
CN115510505A (zh) | 应用文件的打包方法、装置、电子设备及可读存储介质 | |
CN115469934A (zh) | 配置文件加载方法、装置及设备 | |
CN114936368A (zh) | 一种Java内存木马检测方法、终端设备及存储介质 | |
CN112506782A (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN112215593A (zh) | 一种支付方法、装置、服务器及存储介质 | |
CN116541253B (zh) | 应用的检测方法、系统、终端设备和可读存储介质 | |
CN112541182B (zh) | 内核vfs层系统修复方法、装置、设备及存储介质 | |
CN112560035B (zh) | 应用检测方法、装置、设备及存储介质 | |
CN115016824B (zh) | 一种服务安全更新方法及相关设备 | |
CN105528298A (zh) | 安全测试方法和装置 | |
US11940870B2 (en) | Method and device for automatically detecting potential failures in mobile applications | |
CN117332406A (zh) | 监控接口调用的方法、装置和电子设备 | |
CN117271309A (zh) | 业务测试方法、系统、电子设备和存储介质 | |
CN117668781A (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 |