CN105159832B - 一种在应用测试中收集应用异常信息的方法、装置和系统 - Google Patents

一种在应用测试中收集应用异常信息的方法、装置和系统 Download PDF

Info

Publication number
CN105159832B
CN105159832B CN201510633192.4A CN201510633192A CN105159832B CN 105159832 B CN105159832 B CN 105159832B CN 201510633192 A CN201510633192 A CN 201510633192A CN 105159832 B CN105159832 B CN 105159832B
Authority
CN
China
Prior art keywords
application
exception information
intelligent terminal
tested
agent
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.)
Active
Application number
CN201510633192.4A
Other languages
English (en)
Other versions
CN105159832A (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.)
Beijing Qihoo Technology 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 CN201510633192.4A priority Critical patent/CN105159832B/zh
Publication of CN105159832A publication Critical patent/CN105159832A/zh
Application granted granted Critical
Publication of CN105159832B publication Critical patent/CN105159832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种在应用测试中收集应用异常信息的方法、装置和系统,该方法包括:将代理程序注入到测试用智能终端的安卓操作系统中;在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;通过调用所述代理程序收集所述指定接口上的异常信息。该方案有利于应用开发者及时获知应用中存在的问题进而对其进行修复;能够覆盖到系统中的所有应用的异常信息,进而能够分析出应用发生异常的更深层原因;此外,该方案收集到的应用的异常信息能够覆盖到多种机型能够更加全面有效地追溯应用中存在的问题。

Description

一种在应用测试中收集应用异常信息的方法、装置和系统
技术领域
本发明涉及计算机领域,具体涉及一种在应用测试中收集应用异常信息的方法、装置和系统。
背景技术
现有技术中,应用的开发者一般会给应用设置一个专门用于做崩溃处理的模块,该模块与应用是绑定的关系,对绑定的应用所抛出的异常信息,将异常信息收集到一个文件中,生成一些日志文件,将日志文件上传的云端,进而完成崩溃统计。
由于崩溃处理模块与应用是一对一的绑定关系,在该绑定关系下,崩溃处理模块所能收集到的异常信息只能是绑定的应用自身的异常信息,但当该绑定的应用与其他应用发生交互时由于其他应用崩溃而发生异常时,该方案仍旧只能收集到绑定的应用的异常而不能收集到与它发生交互的其他应用的异常,导致无法真正找到应用发生异常的根据原因,不利用开发人员对应用进行修复。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种在应用测试中收集应用异常信息的方法、装置和系统。
依据本发明的一个方面,提供了一种在应用测试中收集应用异常信息的方法,该方法包括:
将代理程序注入到测试用智能终端的安卓操作系统中;
在所述智能终端上运行应用并进行测试时,利用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;
利用所述代理程序收集所述指定接口上的异常信息。
可选地,所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
可选地,该方法进一步包括:
当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,停止对该应用的测试。
可选地,该方法进一步包括:
禁止所述指定接口继续将异常信息转发到应用的服务器。
可选地,该方法进一步包括:
分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
依据本发明的另一个方面,提供了一种在应用测试中收集应用异常信息的方法,该方法包括:
将代理程序分别注入到测试用的不同机型的多个智能终端的安卓操作系统中;
在所述多个智能终端上分别运行应用并进行测试时,在每个智能终端上,都利用该智能终端上的代理程序监控该智能终端上的一个指定接口;其中,该智能终端上的各应用都会将异常信息发送到该指定接口;
在每个智能终端上,利用该智能智能终端上的代理程序收集该智能终端上的指定接口上的异常信息。
可选地,所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
可选地,该方法进一步包括:
在每个智能终端上,当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,停止对该应用的测试。
可选地,该方法进一步包括:
在每个智能终端上,禁止所述指定接口继续将异常信息转发到应用的服务器。
可选地,该方法进一步包括:
对于每个智能终端,分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由该智能终端上的其他应用的原因导致的。
可选地,该方法进一步包括:
根据用户的申请,将代理程序注入到用户智能终端的安卓操作系统中;
在用户智能终端上运行应用并进行测试,利用注入的代理程序监控用户智能终端的一个指定接口;其中,所述用户智能终端上的各应用都会将异常信息发送到该指定接口;
利用注入的代理程序收集用户智能终端上的所述指定接口上的异常信息;
接收用户智能终端反馈的异常信息。
依据本发明的再一个方面,提供了一种在应用测试中收集应用异常信息的装置,该装置包括:
注入单元,适于将代理程序注入到测试用智能终端的安卓操作系统中;
收集单元,适于在所述智能终端上运行应用并进行测试时,利用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;并适于利用所述代理程序收集所述指定接口上的异常信息。
可选地,所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
可选地,所述收集单元,适于当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发出停止对该应用的测试的通知。
可选地,所述收集单元,适于禁止所述指定接口继续将异常信息转发到应用的服务器。
可选地,该装置进一步包括:
分析单元,适于分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
依据本发明的再一个方面,提供了一种在应用测试中收集应用异常信息的系统,该系统包括:分别部署在不同机型的多个智能终端上的多个如上任一项所述的装置。
可选地,该系统进一步包括:
挂机单元,适于根据用户的申请,如上任一项所述的装置部署到用户智能终端上;接收用户智能终端上的所述装置反馈的异常信息。
由上述可知,在对待测应用进行测试的过程中,对于应用出现异常的情况,本发明提供的技术方案利用注入到测试用智能终端的系统中的代理程序监控系统中的一个用于接收系统中的各应用发送的异常信息的指定接口,收集被发送到该指定接口上的异常信息,实现了在应用测试中收集应用异常信息的方案。在对应用进行测试的场景下,该方案在不影响应用的实际运行状态的基础上能够快速有效地收集应用的异常信息,有利于应用开发者及时获知应用中存在的问题进而对其进行修复;且由于通过注入到系统中的代理程序来收集,能够覆盖到系统中的所有应用的异常信息,进而能够分析出应用发生异常的更深层原因;此外,由于应用测试平台上有大量的不同型号的测试用智能终端,使得该方案收集到的应用的异常信息能够覆盖到多种机型以及能够覆盖到不同的终端状态,据此,能够更加全面有效地追溯应用中存在的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种在应用测试中收集应用异常信息的方法的示意图;
图2示出了根据本发明另一个实施例的一种在应用测试中收集应用异常信息的方法的的示意图;
图3示出了根据本发明一个实施例的一种在应用测试中收集应用异常信息的装置的示意图;
图4示出了根据本发明另一个实施例的一种在应用测试中收集应用异常信息的装置的示意图;
图5示出了根据本发明一个实施例的一种在应用测试中收集应用异常信息的系统的示意图;
图6示出了根据本发明另一个实施例的一种在应用测试中收集应用异常信息的系统的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种在应用测试中收集应用异常信息的方法的示意图。如图1所示,该方法包括:
步骤S110,将代理程序注入到测试用智能终端的安卓操作系统中。
步骤S120,在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口。
其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;对于智能终端上的各应用来说,如果想要完成崩溃捕获的功能,必然会有一个类来实现这个指定接口,各应用抛出的异常信息都会被这个指定接口接收。
步骤S130,通过调用所述代理程序收集所述指定接口上的异常信息。
可见,在对待测应用进行测试的过程中,对于应用出现异常的情况,图1所示的方法利用注入到测试用智能终端的系统中的代理程序监控系统中的一个用于接收系统中的各应用发送的异常信息的指定接口,收集被发送到该指定接口上的异常信息,实现了在应用测试中收集应用异常信息的方案。在对应用进行测试的场景下,该方案在不影响应用的实际运行状态的基础上能够快速有效地收集应用的异常信息,有利于应用开发者及时获知应用中存在的问题进而对其进行修复;且由于通过注入到系统中的代理程序来收集,能够覆盖到系统中的所有应用的异常信息,进而能够分析出应用发生异常的更深层原因。
具体地,本方案注入智能终端的操作系统中的代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容;则图1所示方法的步骤S130,通过调用代理程序收集所述指定接口上的异常信息包括:通过Hook函数截获应用发送到指定接口上的异常信息。其中,由于Hook函数可以在系统中的进程正常运行之前和运行之后发挥作用,因此在系统中注入包含Hook函数并通过Hook函数获取应用的相关内容的实施方式并不会影响系统中正常进程的运行;例如,通过Hook函数获取应用的执行方法A,该获取时刻是在该执行方式A执行前或执行后进行的,不会影响该执行方式A的正常执行。
在上述收集应用的异常信息的过程中,如果发现正在进行测试的应用对应的异常信息为崩溃信息时,后续的测试已经没有意义了。因此,在本发明的一个实施例中,图1所示的方法进一步包括:步骤S150,当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发送停止对该应用的测试的通知。具体地,对于收集到崩溃信息的应用,可以直接将该应用进程删除,整个测试流程已经结束,将测试结果以及异常信息收集结果展示给用户即可。
本方案的实施所依赖的规则之一是智能终端上的各应用都会将异常信息发送到该指定接口,而各应用向指定接口抛出异常信息的目的是因为各应用自身在开发过程中为了应对异常现象都会绑定一个崩溃处理模块,一个应用发生崩溃时如果想让其绑定的崩溃处理模块获知该异常的话,必须向该指定接口发送异常信息,由该指定接口进行中转,而本方案的提出打破了原有的应用与崩溃处理模块之间的一对一不能跨应用的模式。又由于本方案中收集异常信息的处理机制可以不影响系统中进程的正常执行,因此,在本方案实施之后,指定接口可以对接收到的异常信息进行转发,也可以不再对接收到的异常信息进行转发。本发明的一个实施例中,图1所示的方法进一步包括:步骤S160,通过调用所述代理程序禁止所述指定接口继续将异常信息转发到应用的服务器;相当于将指定接口覆盖掉,本实施例适用于在待测应用还没有上架的时候。
在本发明的一个实施例中,该方法进一步包括:步骤S170,分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
下面以一个具体的实施例说明图1所示的方法的实施流程:
在需要对一个待测应用A进行测试的场景中,将待测应用A安装在测试用智能终端上,将包含有Hook函数的代理程序注入到该测试用智能终端的系统进程中,使得系统在启动的时候不仅要加载操作系统原生的辅助文件,还要加载代理程序的内容,实现代理程序在系统环境下的初始化环境布局,为后续的测试做准备;在所述智能终端上运行待测应用A,通过调用代理程序获取待测应用A中的执行方法,进而获知待测应用A自身的执行逻辑,依据该执行逻辑对待测应用A进行测试,例如,通过调用代理程序获取待测应用A的各界面信息,对于每个界面,根据界面信息中各控件的属性及其执行逻辑,通过触发各控件以测试其响应是否正确;在该测试过程中,在触发某个控件或者多次触发某个控件时,待测应用A可能会发生异常,对应用异常事件的捕获、统计以及后续的分析是查找应用问题背后的实质原因的重要手段,因此,本实施例在对待测应用A进行测试的过程中要对应用A的异常信息进行收集,其原理是:通过查找安卓源码来实现一个方法,叫做Uncaught Exception(未捕获异常)接口,系统中的应用想要完成崩溃捕获的功能(目前基本所有的应用均被开发该功能),必然会有一个类来实现这个Uncaught Exception接口,应用抛出的异常信息均会被这个接口接收。本方案通过调用注入到系统进程中的代理程序监控该Uncaught Exception接口,截获发送到该接口上的异常信息。对于待测应用A,通过调用代理程序获取应用A的执行方法,根据其执行方法反映的执行逻辑获知与应用A发生交互的其他应用,则本方案不仅要收集应用A自身的异常信息,还要收集与应用A发生交互的其他应用的异常信息,一方面,通过应用A自身的异常信息分析出由于应用A自身的代码问题而引起的应用A的异常,另一方面,通过与应用A发生交互的其他应用的异常信息分析出由于其他应用的代码问题而引起的应用A的异常;例如,在测试过程中,获取到应用A的界面上有一个“分享”控件,其用途是将应用A的相关内容通过应用B来进行分享,在触发该控件时,应用A发生异常,收集到该应用A的异常信息,同时也收集到了应用B的崩溃信息,经过分析,发现应用A的异常信息原来是由于应用B的崩溃信息而导致的,并不是应用A本身的问题,无需对应用A进行修复。
通过上述的实施例容易看出,与现有技术中应用通过与之一对一绑定的崩溃处理模块来收集崩溃信息的方案相比,本方案能够提供待测应用A的异常堆栈,该异常堆栈是完全覆盖智能终端上的其他所有应用的,因为最初在注入代理程序是向系统中注入的,能够取得系统级别的操作权限,系统中所有的异常信息都可以通过本方案来收集,并且通过包名来识别各异常信息的来源应用,相当于可以生成两份异常报告,一份是与待测应用直接相关的,另一份是与待测应用间接相关的,这样对开发者来说可以更好地分析产生异常的原因,进而进行修复。
图2示出了根据本发明另一个实施例的一种在应用测试中收集应用异常信息的方法的的示意图。如图2所示,该方法包括:
步骤S210,将代理程序分别注入到测试用的不同机型的多个智能终端的安卓操作系统中。
步骤S220,在所述多个智能终端上分别运行应用并进行测试时,在每个智能终端上,都利用该智能终端上的代理程序监控该智能终端上的一个指定接口。
其中,该智能终端上的各应用都会将异常信息发送到该指定接口;
步骤S230,在每个智能终端上,利用该智能智能终端上的代理程序收集该智能终端上的指定接口上的异常信息。
可见,在对待测应用进行测试的过程中,对于应用出现异常的情况,图2所示的方法利用注入到测试用智能终端的系统中的代理程序监控系统中的一个用于接收系统中的各应用发送的异常信息的指定接口,收集被发送到该指定接口上的异常信息,实现了在应用测试中收集应用异常信息的方案。在对应用进行测试的场景下,该方案在不影响应用的实际运行状态的基础上能够快速有效地收集应用的异常信息,有利于应用开发者及时获知应用中存在的问题进而对其进行修复;且由于通过注入到系统中的代理程序来收集,能够覆盖到系统中的所有应用的异常信息,进而能够分析出应用发生异常的更深层原因;此外,由于应用测试平台上有大量的不同型号的测试用智能终端,使得该方案收集到的应用的异常信息能够覆盖到多种机型以及能够覆盖到不同的终端状态,据此,能够更加全面有效地追溯应用中存在的问题。
在本发明的一个实施例中,所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
在本发明的一个实施例中,图2所示的方法进一步包括:在每个智能终端上,当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,停止对该应用的测试。
在本发明的一个实施例中,图2所示的方法进一步包括:在每个智能终端上,禁止所述指定接口继续将异常信息转发到应用的服务器。
在本发明的一个实施例中,,图2所示的方法进一步包括:对于每个智能终端,分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由该智能终端上的其他应用的原因导致的。
此外,本方案中,可以用专门的测试用智能终端实施异常信息收集,也可以根据用户的意愿选取符合条件的用户智能终端实施异常信息收集,以减轻测试平台上的智能终端的负荷。则在本发明的一个实施例中,,图2所示的方法进一步包括:
步骤S2430,根据用户的申请,将代理程序注入到用户智能终端的安卓操作系统中。
步骤S250,在用户智能终端上运行应用并进行测试,通过调用注入的代理程序监控用户智能终端的一个指定接口;其中,所述用户智能终端上的各应用都会将异常信息发送到该指定接口。
步骤S260,通过调用注入的代理程序收集用户智能终端上的所述指定接口上的异常信息。
步骤S270,接收用户智能终端侧反馈的异常信息。
图3示出了根据本发明一个实施例的一种在应用测试中收集应用异常信息的装置的示意图。如图3所示,该在应用测试中收集应用异常信息的装置300包括:
注入单元310,适于将代理程序注入到测试用智能终端的安卓操作系统中。
收集单元320,适于在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;并适于通过调用所述代理程序收集所述指定接口上的异常信息。
在本发明的一个实施例中,所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
在本发明的一个实施例中,所述收集单元320,适于当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发出停止对该应用的测试的通知。
在本发明的一个实施例中,所述收集单元320,进一步适于通过调用所述代理程序禁止所述指定接口继续将异常信息转发到应用的服务器。
图4示出了根据本发明另一个实施例的一种在应用测试中收集应用异常信息的装置的示意图。如图4所示,该在应用测试中收集应用异常信息的装置400包括:注入单元410、收集单元420和分析单元430。
其中,注入单元410、收集单元420分别与图3所示装置中的注入单元310、收集单元320对应相同,在此不再赘述。
分析单元430,适于分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
需要说明的是,图3-图4所示装置的各实施例与图1-图2所示方法的各实施例对应相同,上文中已有详细说明,在此不再赘述。
图5示出了根据本发明一个实施例的一种在应用测试中收集应用异常信息的系统的示意图。如图5所示,该在应用测试中收集应用异常信息的系统包括:分别部署在不同机型的多个智能终端上的多个在应用测试中收集应用异常信息的装置510,该在应用测试中收集应用异常信息的装置510与上文中的在应用测试中收集应用异常信息的装置300/400相同,在此不再赘述。
图6示出了根据本发明另一个实施例的一种在应用测试中收集应用异常信息的系统的示意图。如图6所示,该在应用测试中收集应用异常信息的系统包括:分别部署在不同机型的多个智能终端上的多个在应用测试中收集应用异常信息的装置610和挂机单元620。
其中,多个在应用测试中收集应用异常信息的装置610与上文中的在应用测试中收集应用异常信息的装置300/400相同,在此不再赘述。
挂机单元620,适于根据用户的申请,将在应用测试中收集应用异常信息的装置610部署到用户智能终端上;接收用户智能终端上的在应用测试中收集应用异常信息的装置610反馈的异常信息。
综上所述,本发明提供的技术方案在对待测应用进行测试的过程中,对于应用出现异常的情况,利用注入到测试用智能终端的系统中的代理程序监控系统中的一个用于接收系统中的各应用发送的异常信息的指定接口,收集被发送到该指定接口上的异常信息,实现了在应用测试中收集应用异常信息的方案。在对应用进行测试的场景下,该方案在不影响应用的实际运行状态的基础上能够快速有效地收集应用的异常信息,有利于应用开发者及时获知应用中存在的问题进而对其进行修复;且由于通过注入到系统中的代理程序来收集,能够覆盖到系统中的所有应用的异常信息,进而能够分析出应用发生异常的更深层原因;此外,由于应用测试平台上有大量的不同型号的测试用智能终端,使得该方案收集到的应用的异常信息能够覆盖到多种机型以及能够覆盖到不同的终端状态,据此,能够更加全面有效地追溯应用中存在的问题,对于应用开发者来说具有重要的意义。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以通过调用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种在应用测试中收集应用异常信息的装置和系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种在应用测试中收集应用异常信息的方法,其中,该方法包括:
将代理程序注入到测试用智能终端的安卓操作系统中;
在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;
通过调用所述代理程序收集所述指定接口上的异常信息。
A2、如A1所述的方法,其中,
所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
A3、如A1所述的方法,其中,该方法进一步包括:
当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发送停止对该应用的测试的通知。
A4、如A1所述的方法,其中,该方法进一步包括:
通过调用所述代理程序禁止所述指定接口继续将异常信息转发到应用的服务器。
A5、如A1所述的方法,其中,该方法进一步包括:
分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
本发明还公开了B6、一种在应用测试中收集应用异常信息的方法,其中,该方法包括:
在测试用的不同机型的多个智能终端上分别执行如A1-A5中任一项所述的方法。
B7、如B6所述的方法,其中,该方法进一步包括:
根据用户的申请,将代理程序注入到用户智能终端的安卓操作系统中;
在用户智能终端上运行应用并进行测试,通过调用注入的代理程序监控用户智能终端的一个指定接口;其中,所述用户智能终端上的各应用都会将异常信息发送到该指定接口;
通过调用注入的代理程序收集用户智能终端上的所述指定接口上的异常信息;
接收用户智能终端侧反馈的异常信息。
本发明还公开了C8、一种在应用测试中收集应用异常信息的装置,其中,该装置包括:
注入单元,适于将代理程序注入到测试用智能终端的安卓操作系统中;
收集单元,适于在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;并适于通过调用所述代理程序收集所述指定接口上的异常信息。
C9、如C8所述的装置,其中,
所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
C10、如C8所述的装置,其中,
所述收集单元,适于当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发出停止对该应用的测试的通知。
C11、如C8所述的装置,其中,
所述收集单元,进一步适于通过调用所述代理程序禁止所述指定接口继续将异常信息转发到应用的服务器。
C12、如C8所述的装置,其中,该装置进一步包括:
分析单元,适于分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
本发明还公开了D13、一种在应用测试中收集应用异常信息的系统,其中,该系统包括:分别部署在不同机型的多个智能终端上的多个如C8-C12中任一项所述的装置。
D14、如D13所述的系统,其中,该系统进一步包括:
挂机单元,适于根据用户的申请,将如C8-C11中任一项所述的装置部署到用户智能终端上;接收用户智能终端上的所述装置反馈的异常信息。

Claims (14)

1.一种在应用测试中收集应用异常信息的方法,其中,该方法包括:
将代理程序注入到测试用智能终端的安卓操作系统中;
在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;
通过调用所述代理程序收集所述指定接口上的异常信息;
分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
2.如权利要求1所述的方法,其中,
所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
3.如权利要求1所述的方法,其中,该方法进一步包括:
当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发送停止对该应用的测试的通知。
4.如权利要求1所述的方法,其中,该方法进一步包括:
通过调用所述代理程序禁止所述指定接口继续将异常信息转发到应用的服务器。
5.一种在应用测试中收集应用异常信息的方法,其中,该方法包括:
在测试用的不同机型的多个智能终端上分别执行如权利要求1-4中任一项所述的方法。
6.如权利要求5所述的方法,其中,该方法进一步包括:
根据用户的申请,将代理程序注入到用户智能终端的安卓操作系统中;
在用户智能终端上运行应用并进行测试,通过调用注入的代理程序监控用户智能终端的一个指定接口;其中,所述用户智能终端上的各应用都会将异常信息发送到该指定接口;
通过调用注入的代理程序收集用户智能终端上的所述指定接口上的异常信息;
接收用户智能终端侧反馈的异常信息。
7.一种在应用测试中收集应用异常信息的装置,其中,该装置包括:
注入单元,适于将代理程序注入到测试用智能终端的安卓操作系统中;
收集单元,适于在所述智能终端上运行应用并进行测试时,通过调用所述代理程序监控一个指定接口;其中,所述智能终端上的各应用都会将异常信息发送到该指定接口;并适于通过调用所述代理程序收集所述指定接口上的异常信息;
分析单元,适于分析进行测试的应用的运行逻辑和所收集的异常信息之间的关系,确定应用发生异常是由该应用自身的原因导致的,还是由其他应用的原因导致的。
8.如权利要求7所述的装置,其中,
所述代理程序包含Hook函数,通过Hook函数获取运行在所述测试用智能终端上的应用的相关内容。
9.如权利要求7所述的装置,其中,
所述收集单元,适于当获取到进行测试的应用的异常信息,且该异常信息表示该应用已崩溃时,发出停止对该应用的测试的通知。
10.如权利要求7所述的装置,其中,
所述收集单元,进一步适于通过调用所述代理程序禁止所述指定接口继续将异常信息转发到应用的服务器。
11.一种在应用测试中收集应用异常信息的系统,其中,该系统包括:分别部署在不同机型的多个智能终端上的多个如权利要求7-10中任一项所述的装置。
12.如权利要求11所述的系统,其中,该系统进一步包括:
挂机单元,适于根据用户的申请,将如权利要求7-10中任一项所述的装置部署到用户智能终端上;接收用户智能终端上的所述装置反馈的异常信息。
13.一种电子设备,其中,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-6中任一项所述的方法。
CN201510633192.4A 2015-09-29 2015-09-29 一种在应用测试中收集应用异常信息的方法、装置和系统 Active CN105159832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510633192.4A CN105159832B (zh) 2015-09-29 2015-09-29 一种在应用测试中收集应用异常信息的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510633192.4A CN105159832B (zh) 2015-09-29 2015-09-29 一种在应用测试中收集应用异常信息的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN105159832A CN105159832A (zh) 2015-12-16
CN105159832B true CN105159832B (zh) 2018-09-25

Family

ID=54800694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510633192.4A Active CN105159832B (zh) 2015-09-29 2015-09-29 一种在应用测试中收集应用异常信息的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN105159832B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893248A (zh) * 2015-12-30 2016-08-24 乐视致新电子科技(天津)有限公司 获取终端设备中异常相关信息的方法和装置
CN105824754B (zh) * 2016-03-17 2018-11-13 广州多益网络股份有限公司 客户端程序的Python异常捕获和上传的方法
CN106126415B (zh) * 2016-06-15 2018-12-04 百度在线网络技术(北京)有限公司 一种在安卓系统中的应用调试方法和应用调试装置
CN106055485A (zh) * 2016-07-08 2016-10-26 北京奇虎科技有限公司 一种测试应用的方法、装置和系统
CN108156048A (zh) * 2016-12-06 2018-06-12 北京奇虎科技有限公司 一种实现在复杂场景中获取应用崩溃信息的方法和装置
CN107463492A (zh) * 2017-06-29 2017-12-12 北京五八信息技术有限公司 应用程序故障定位方法及装置
CN110286958B (zh) * 2019-06-20 2021-10-29 腾讯科技(深圳)有限公司 节点信息获取方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156275A (zh) * 2014-06-30 2014-11-19 青岛海信移动通信技术股份有限公司 一种安卓Android平台异常处理的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689334B2 (en) * 2007-02-28 2014-04-01 Alcatel Lucent Security protection for a customer programmable platform
CN102043923A (zh) * 2009-10-19 2011-05-04 蓝盾信息安全技术股份有限公司 一种对内核驱动层实施监控的监控系统及其监控方法
CN102306119A (zh) * 2011-06-30 2012-01-04 北京新媒传信科技有限公司 捕获全局异常的系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156275A (zh) * 2014-06-30 2014-11-19 青岛海信移动通信技术股份有限公司 一种安卓Android平台异常处理的方法和装置

Also Published As

Publication number Publication date
CN105159832A (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
CN105159832B (zh) 一种在应用测试中收集应用异常信息的方法、装置和系统
US10445222B2 (en) Debugging in-cloud distributed code in live load environment
US11023369B2 (en) API driven continuous testing systems for testing disparate software
CN105468529B (zh) 一种安卓应用ui控件精准遍历方法和装置
US9916230B1 (en) White box testing
CN104461900B (zh) 用户界面的测试方法、中控服务器、测试终端及系统
CN104683180B (zh) 一种性能监控方法、系统及应用服务器
US9003235B2 (en) Indicating coverage of web application testing
CN108345535A (zh) mock测试方法、装置及设备
CN105512015B (zh) 一种安卓目标应用崩溃统计方法和装置
CN105607993B (zh) 一种对应用的用户界面ui进行测试的方法和装置
US9507696B2 (en) Identifying test gaps using code execution paths
CN110196809B (zh) 接口测试方法及装置
CN111026601A (zh) Java应用系统的监控方法、装置、电子设备及存储介质
CN108769083A (zh) 基于分布式服务器的登录方法、装置及系统
CN110457211A (zh) 脚本性能测试方法、装置和设备及计算机存储介质
CN111221727B (zh) 测试方法、装置、电子设备和计算机可读介质
US20150317232A1 (en) Method And Apparatus For Positioning Crash
CN103581185A (zh) 对抗免杀测试的云查杀方法、装置及系统
CN109240734A (zh) 代码提交方法及装置
CN105224457B (zh) 一种测试框架实现方法和装置
CN107608898A (zh) 一种再现测试流程以实现自动化回归测试的方法
CN106059860A (zh) 一种测试网卡的方法和装置
CN106294161A (zh) 一种应用的界面功能测试方法和装置
CN107729249A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220708

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd