CN104978227A - 一种进程控制方法、装置,及系统 - Google Patents

一种进程控制方法、装置,及系统 Download PDF

Info

Publication number
CN104978227A
CN104978227A CN201410138520.9A CN201410138520A CN104978227A CN 104978227 A CN104978227 A CN 104978227A CN 201410138520 A CN201410138520 A CN 201410138520A CN 104978227 A CN104978227 A CN 104978227A
Authority
CN
China
Prior art keywords
file
control
function
binary coding
calls
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
Application number
CN201410138520.9A
Other languages
English (en)
Other versions
CN104978227B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410138520.9A priority Critical patent/CN104978227B/zh
Publication of CN104978227A publication Critical patent/CN104978227A/zh
Application granted granted Critical
Publication of CN104978227B publication Critical patent/CN104978227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种进程控制方法、装置,及系统,其中方法的实现包括:注入启动进程启动被控制进程,并获取预置的函数文件;所述注入启动进程将所述函数文件注入所述被控制进程,使所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。

Description

一种进程控制方法、装置,及系统
技术领域
本发明涉及计算机技术领域,特别涉及一种进程控制方法、装置,及系统。
背景技术
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
进程的主要特征如下:
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行。
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。
进程控制方法属于控制进程的方案,控制进程的目的可以是出于测试的目的,可以是出于信息获取的目的,等。以下以自动化测试为例,对进程的控制进行说明:
Android(安卓)自动化测试主要分为Monkeyrunner(一种自动化黑盒测试工具)和Robotium(一种自动化测试工具,安卓自动化测试框架)。以Robotium为例,主要特点:Robotium主要针对某一个APK(AndroidPackage,Android安装包)进行自动化测试,APK可以有源码,也可以没有源码,功能强大;但是该测试方案需要针对APK操作,而且需要对APK重新签名。
由于Robotium基于android的instrument工具框架(安卓自带的工具框架),运行时需要对被测APP(APPlication,应用)进行重新签名。由于APP的重新签名保护机制的原因,会导致APP异常,发生掉线资源丢失等情况。
发明内容
本发明实施例提供了一种进程控制方法、装置,及系统,用于实现对进程的控制并避免被控制的进程发生异常。
一种进程控制方法,包括:
注入启动进程启动被控制进程,并获取预置的函数文件;
所述注入启动进程将所述函数文件注入所述被控制进程,使所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
一种进程控制方法,包括:
被控制进程启动,并开始运行;
在所述被控制进程运行过程中接收来自注入启动进程注入的函数文件;所述函数文件为预置的函数文件;
所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
一种进程控制装置,包括:
启动控制单元,用于启动被控制进程;
文件获取单元,用于获取预置的函数文件;
注入单元,用于将所述函数文件注入所述被控制进程,使所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
一种进程控制装置,包括:
运行控制单元,用于使被控制进程启动,并开始运行;
文件接收单元,用于在所述被控制进程运行过程中接收来自注入启动进程注入的函数文件;所述函数文件为预置的函数文件;
文件加载单元,用于通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
一种进程控制系统,包括:本发明实施例图4或5所示的装置,以及本发明实施例图6或7所示的装置。
从以上技术方案可以看出,本发明实施例具有以下优点:注入启动进程控制被控制进程启动,并获得预置的函数文件,将函数文件注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例方法流程示意图;
图3为本发明实施例系统结构示意图;
图4为本发明实施例装置结构示意图;
图5为本发明实施例装置结构示意图;
图6为本发明实施例装置结构示意图;
图7为本发明实施例装置结构示意图;
图8为本发明实施例装置结构示意图;
图9为本发明实施例服务器结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种进程控制方法,如图1所示,包括:
101:注入启动进程启动被控制进程,并获取预置的函数文件;
上述预置的函数文件,通常可以是技术人员编写的可执行代码。本发明实施例将要实现的是控件级别的控制,这些可执行代码通常是一些编程语言编写的,例如C语言等。这些用编程语言编写的可执行代码不能被进程所直接执行,需要进程依据这些可执行代码加载二进制编码文件并调用库函数实现执行过程。相应的,上述函数文件就是初始执行控制的发出者。
102:上述注入启动进程将上述函数文件注入上述被控制进程,使上述被控制进程通过上述函数文件加载与上述函数文件对应的二进制编码文件;上述二进制编码文件被上述测试进程加载后,上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件。
本发明实施例中,注入启动进程控制被控制进程启动,并获得预置的函数文件,将函数文件注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
基于控制进程的不同需求,技术人员可以将函数文件针对不同的技术目的进行编写,以下实施例以测试需求进行举例说明,可选地,上述二进制编码文件为二进制编码的测试脚本文件;上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件包括:
上述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
基于前述实施例的说明,在调用安卓自动化测试框架库文件之后具体的测试过程可以如下:上述调用安卓自动化测试框架库文件之后,还包括:
通过调用安卓自动化测试框架库文件获取控件信息,并对用户界面进行测试。本实施例可以实现对用户界面的自动化测试。
在本发明实施例中需要对被控制进程进行注入操作,本发明实施例给出了其中的一个优选实现方案,具体如下:上述将上述函数文件注入上述被控制进程,包括:
通过进程注入函数PTRACE将上述函数文件注入上述被控制进程。
PTRACE函数(也称为PTRACE系统调用)介绍如下:提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心影像(image)。它主要用于实现断点调试和系统调用跟踪。一个被跟踪的进程运行中,直到发生一个信号。则进程被中止,并且通知其父进程。在进程中止的状态下,进程的内存空间可以被读写。父进程还可以使子进程继续执行,并选择是否忽略引起中止的信号。Request参数决定了系统调用的功能,例如:
PTRACE_TRACEME,用于指示本进程被其父进程所跟踪。PTRACE_ATTACH:用于指定跟踪的进程。父进程可通过调用fork创建进程命令,接着指定所产生的子进程的PTRACE_TRACEME行为,最后使用exec(编程函数)等操作来初始化一个进程跟踪。可替代的做法是,父进程通过PTRACE_ATTACH请求跟踪一个现存进程的执行。exec是函数族的一种,可以把当前进程映像替换成新的程序文件。
以上实施例是基于注入启动进程提出的解决方案,本发明实施例还提出了基于被控制进程的解决方案具体如下:本发明实施例提供了另一种进程控制方法,如图2所示,包括:
201:被控制进程启动,并开始运行;
202:在上述被控制进程运行过程中接收来自注入启动进程注入的函数文件;上述函数文件为预置的函数文件;
上述预置的函数文件,通常可以是技术人员编写的可执行代码。本发明实施例将要实现的是控件级别的控制,这些可执行代码通常是一些编程语言编写的,例如C语言等。这些用编程语言编写的可执行代码不能被进程所直接执行,需要进程依据这些可执行代码加载二进制编码文件并调用库函数实现执行过程。相应的,上述函数文件就是初始执行控制的发出者。
203:上述被控制进程通过上述函数文件加载与上述函数文件对应的二进制编码文件;上述二进制编码文件被上述测试进程加载后,上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件。
本发明实施例中,函数文件被注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
基于控制进程的不同需求,技术人员可以将函数文件针对不同的技术目的进行编写,以下实施例以测试需求进行举例说明,可选地,上述二进制编码文件为二进制编码的测试脚本文件;上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件包括:上述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
基于前述实施例的说明,在调用安卓自动化测试框架库文件之后具体的测试过程可以如下:上述调用安卓自动化测试框架库文件之后,还包括:
通过调用安卓自动化测试框架库文件获取控件信息,并输出获取的上述获取控件信息。本实施例可以实现对用户界面的自动化测试。
以下实施例将以Android系统下的进程控制为例,进行详细说明。
Android代码注入和Linux代码注入基本没有区别,具体方案如下:使用PTRACE打开被测程序的进程,将SO文件(是测试人员编写的文件,用于调用安卓二进制编码dex文件的文件)注入到到被测程序的进程里面,SO再去加载测试代码并且执行,实现测试。
在本发明实施例中,可以让SO加载robotium(安卓自动化测试框架库文件)相关代码并执行,这样,robotium运行于被测程序的进程里,能够实现快速获取控件信息,并且无需更换签名。这样,QQ、微信、QQ游戏等,都可以轻松实现自动化UI(User Interface,用户界面)测试。具体请参阅图3所示的系统结构图,包含注入启动进程(Injector)、SO文件、robotium库文件以及被测进程。具体实现方案请参阅图3,包括如下步骤:
1、Injector程序启动被测进程。例如:Injector程序启动“微信”,就是启动“com.tencent.mm”进程。
2、Injector将测试人员预先编号的SO文件通过ptrace注入到被测进程。
3、被注入被测进程中的SO文件由被测进程解析并加载android自动化dex文件。
4、自动化dex文件由被测进程加载并执行,在执行过程中调用robotium库文件实现控件级别的自动化测试操作。
一种进程控制装置,如图4所示,包括:
启动控制单元401,用于启动被控制进程;
文件获取单元402,用于获取预置的函数文件;
注入单元403,用于将上述函数文件注入上述被控制进程,使上述被控制进程通过上述函数文件加载与上述函数文件对应的二进制编码文件;上述二进制编码文件被上述测试进程加载后,上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件。
上述预置的函数文件,通常可以是技术人员编写的可执行代码。本发明实施例将要实现的是控件级别的控制,这些可执行代码通常是一些编程语言编写的,例如C语言等。这些用编程语言编写的可执行代码不能被进程所直接执行,需要进程依据这些可执行代码加载二进制编码文件并调用库函数实现执行过程。相应的,上述函数文件就是初始执行控制的发出者。
本发明实施例中,注入启动进程控制被控制进程启动,并获得预置的函数文件,将函数文件注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
基于控制进程的不同需求,技术人员可以将函数文件针对不同的技术目的进行编写,以下实施例以测试需求进行举例说明,可选地,上述二进制编码文件为二进制编码的测试脚本文件;上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件包括:
上述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
基于前述实施例的说明,在调用安卓自动化测试框架库文件之后具体的测试过程可以如下:进一步地,如图5所示,上述装置还包括:
测试单元501,用于在上述调用安卓自动化测试框架库文件之后,通过调用安卓自动化测试框架库文件获取控件信息,并对用户界面进行测试。
可选地,上述注入单元403,用于通过进程注入函数PTRACE将上述函数文件注入上述被控制进程。
以上实施例是基于注入启动进程提出的解决方案,本发明实施例还提出了基于被控制进程的解决方案具体如下:本发明实施例还提供了另一种进程控制装置,如图6所示,包括:
运行控制单元601,用于使被控制进程启动,并开始运行;
文件接收单元602,用于在上述被控制进程运行过程中接收来自注入启动进程注入的函数文件;上述函数文件为预置的函数文件;
文件加载单元603,用于通过上述函数文件加载与上述函数文件对应的二进制编码文件;上述二进制编码文件被上述测试进程加载后,上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件。
上述预置的函数文件,通常可以是技术人员编写的可执行代码。本发明实施例将要实现的是控件级别的控制,这些可执行代码通常是一些编程语言编写的,例如C语言等。这些用编程语言编写的可执行代码不能被进程所直接执行,需要进程依据这些可执行代码加载二进制编码文件并调用库函数实现执行过程。相应的,上述函数文件就是初始执行控制的发出者。
本发明实施例中,函数文件被注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
基于控制进程的不同需求,技术人员可以将函数文件针对不同的技术目的进行编写,以下实施例以测试需求进行举例说明,可选地,上述二进制编码文件为二进制编码的测试脚本文件;上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件包括:
上述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
基于前述实施例的说明,在调用安卓自动化测试框架库文件之后具体的测试过程可以如下:进一步地,如图7所示,上述装置还包括:
控件获取单元701,用于在调用安卓自动化测试框架库文件之后,通过调用安卓自动化测试框架库文件获取控件信息;
输出单元702,用于输出上述控件获取单元701获取的上述获取控件信息。
本实施例可以实现对用户界面的自动化测试。
本发明实施例还提供了一种进程控制系统,如图8所示,包括:本发明实施例图4或5所示的装置801,以及本发明实施例图6或7所示的装置802。
以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
图9是本发明实施例提供的一种服务器结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由进程控制装置所执行的步骤可以基于该图9所示的服务器结构。
以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (15)

1.一种进程控制方法,其特征在于,包括:
注入启动进程启动被控制进程,并获取预置的函数文件;
所述注入启动进程将所述函数文件注入所述被控制进程,使所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
2.根据权利要求1所述方法,其特征在于,所述二进制编码文件为二进制编码的测试脚本文件;所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件包括:
所述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
3.根据权利要求2所述方法,其特征在于,所述调用安卓自动化测试框架库文件之后,还包括:
通过调用安卓自动化测试框架库文件获取控件信息,并对用户界面进行测试。
4.根据权利要求1~3任意一项所述方法,其特征在于,所述将所述函数文件注入所述被控制进程,包括:
通过进程注入函数PTRACE将所述函数文件注入所述被控制进程。
5.一种进程控制方法,其特征在于,包括:
被控制进程启动,并开始运行;
在所述被控制进程运行过程中接收来自注入启动进程注入的函数文件;所述函数文件为预置的函数文件;
所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
6.根据权利要求5所述方法,其特征在于,所述二进制编码文件为二进制编码的测试脚本文件;所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件包括:
所述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
7.根据权利要求6所述方法,其特征在于,所述调用安卓自动化测试框架库文件之后,还包括:
通过调用安卓自动化测试框架库文件获取控件信息,并输出获取的所述获取控件信息。
8.一种进程控制装置,其特征在于,包括:
启动控制单元,用于启动被控制进程;
文件获取单元,用于获取预置的函数文件;
注入单元,用于将所述函数文件注入所述被控制进程,使所述被控制进程通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
9.根据权利要求8所述装置,其特征在于,所述二进制编码文件为二进制编码的测试脚本文件;所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件包括:
所述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
10.根据权利要求9所述装置,其特征在于,所述装置还包括:
测试单元,用于在所述调用安卓自动化测试框架库文件之后,通过调用安卓自动化测试框架库文件获取控件信息,并对用户界面进行测试。
11.根据权利要求8~10任意一项所述装置,其特征在于,
所述注入单元,用于通过进程注入函数PTRACE将所述函数文件注入所述被控制进程。
12.一种进程控制装置,其特征在于,包括:
运行控制单元,用于使被控制进程启动,并开始运行;
文件接收单元,用于在所述被控制进程运行过程中接收来自注入启动进程注入的函数文件;所述函数文件为预置的函数文件;
文件加载单元,用于通过所述函数文件加载与所述函数文件对应的二进制编码文件;所述二进制编码文件被所述测试进程加载后,所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件。
13.根据权利要求12所述装置,其特征在于,所述二进制编码文件为二进制编码的测试脚本文件;所述二进制编码文件在运行过程中调用所述被控制进程之外的库文件包括:
所述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
14.根据权利要求13所述装置,其特征在于,所述装置还包括:
控件获取单元,用于在调用安卓自动化测试框架库文件之后,通过调用安卓自动化测试框架库文件获取控件信息;
输出单元,用于输出所述控件获取单元获取的所述获取控件信息。
15.一种进程控制系统,其特征在于,包括:权利要求8~11任意一项的装置以及权利要求12~14任意一项的装置。
CN201410138520.9A 2014-04-08 2014-04-08 一种进程控制方法、装置,及系统 Active CN104978227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410138520.9A CN104978227B (zh) 2014-04-08 2014-04-08 一种进程控制方法、装置,及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410138520.9A CN104978227B (zh) 2014-04-08 2014-04-08 一种进程控制方法、装置,及系统

Publications (2)

Publication Number Publication Date
CN104978227A true CN104978227A (zh) 2015-10-14
CN104978227B CN104978227B (zh) 2019-04-26

Family

ID=54274759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410138520.9A Active CN104978227B (zh) 2014-04-08 2014-04-08 一种进程控制方法、装置,及系统

Country Status (1)

Country Link
CN (1) CN104978227B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055469A (zh) * 2016-05-19 2016-10-26 中国科学院软件研究所 一种基于代码注入的移动端应用测试系统及方法
CN111027055A (zh) * 2019-03-19 2020-04-17 哈尔滨安天科技集团股份有限公司 一种隐藏安卓系统进程的方法、装置及存储设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984409A (zh) * 2010-11-10 2011-03-09 南京南瑞继保电气有限公司 一种用于Linux系统测试代码注入的方法
CN103019944A (zh) * 2013-01-10 2013-04-03 曙光信息产业(北京)有限公司 基于代码注入方式的测试方法和装置
CN103136102A (zh) * 2013-02-07 2013-06-05 百度在线网络技术(北京)有限公司 一种Android平台的流畅度测试方法和装置
CN103336742A (zh) * 2013-07-18 2013-10-02 北京航空航天大学 一种基于Android的自动化软件黑盒测试系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984409A (zh) * 2010-11-10 2011-03-09 南京南瑞继保电气有限公司 一种用于Linux系统测试代码注入的方法
CN103019944A (zh) * 2013-01-10 2013-04-03 曙光信息产业(北京)有限公司 基于代码注入方式的测试方法和装置
CN103136102A (zh) * 2013-02-07 2013-06-05 百度在线网络技术(北京)有限公司 一种Android平台的流畅度测试方法和装置
CN103336742A (zh) * 2013-07-18 2013-10-02 北京航空航天大学 一种基于Android的自动化软件黑盒测试系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055469A (zh) * 2016-05-19 2016-10-26 中国科学院软件研究所 一种基于代码注入的移动端应用测试系统及方法
CN106055469B (zh) * 2016-05-19 2018-05-18 中国科学院软件研究所 一种基于代码注入的移动端应用测试系统及方法
CN111027055A (zh) * 2019-03-19 2020-04-17 哈尔滨安天科技集团股份有限公司 一种隐藏安卓系统进程的方法、装置及存储设备

Also Published As

Publication number Publication date
CN104978227B (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
EP3204849B1 (en) Systems and methods to update source code files
US8561067B2 (en) Test suites for virtualized computing environments
CN105446712B (zh) 一种应用程序缺陷修补方法及装置
CN102467448B (zh) 一种测试用例的测试方法及系统
CN107729240B (zh) 嵌入式软件堆栈溢出检测方法和装置
KR20100121226A (ko) 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법
WO2016101503A1 (zh) 一种热补丁的实现方法和装置
US11030074B2 (en) Code update based on detection of change in runtime code during debugging
US9639343B2 (en) Method for altering execution of a program, debugger, and computer-readable medium
CN112068896A (zh) Dts修改的方法、装置及计算机可读存储介质
CN106020905A (zh) 一种微控制器固件开发与更新的方法及系统
CN104850476A (zh) 跨平台接口自动化测试方法及系统
US8762781B2 (en) Method and apparatus useful in manufacturing test case operations
US20130159689A1 (en) Method and apparatus for initializing embedded device
CN104978227A (zh) 一种进程控制方法、装置,及系统
CN103049376A (zh) 一种进程的内存溢出测试方法、装置及设备
CN105824750A (zh) 一种在NorFlash程序空间调试的软断点模拟方法
CN113220451A (zh) 分布式集群系统的部署方法、系统、装置及存储介质
CN104182344A (zh) 一种覆盖安装测试方法及装置
CN109144849B (zh) 一种嵌入式软件调测方法
CN110806891A (zh) 嵌入式设备软件版本的生成方法及装置
US10534693B2 (en) Temporary de-optimization of target functions in a cloud debugger
US11847433B2 (en) Source code editing combining edit and continue with hot reload
WO2022257303A1 (zh) 一种深度学习系统的部署方法和装置
CN109271179B (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