一种进程控制方法、装置,及系统的制作方法_3

文档序号:9261262阅读:来源:国知局
库文件以及被测进程。具体实现方案请参阅图3,包括如下步骤:
[0071]UInjector程序启动被测进程。例如:Injector程序启动“微信”,就是启动“com.tencent.mm,,进程。
[0072]2、Injector将测试人员预先编号的SO文件通过ptrace注入到被测进程。
[0073]3、被注入被测进程中的SO文件由被测进程解析并加载android自动化dex文件。
[0074]4、自动化dex文件由被测进程加载并执行,在执行过程中调用robotium库文件实现控件级别的自动化测试操作。
[0075]一种进程控制装置,如图4所示,包括:
[0076]启动控制单兀401,用于启动被控制进程;
[0077]文件获取单元402,用于获取预置的函数文件;
[0078]注入单元403,用于将上述函数文件注入上述被控制进程,使上述被控制进程通过上述函数文件加载与上述函数文件对应的二进制编码文件;上述二进制编码文件被上述测试进程加载后,上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件。
[0079]上述预置的函数文件,通常可以是技术人员编写的可执行代码。本发明实施例将要实现的是控件级别的控制,这些可执行代码通常是一些编程语言编写的,例如C语言等。这些用编程语言编写的可执行代码不能被进程所直接执行,需要进程依据这些可执行代码加载二进制编码文件并调用库函数实现执行过程。相应的,上述函数文件就是初始执行控制的发出者。
[0080]本发明实施例中,注入启动进程控制被控制进程启动,并获得预置的函数文件,将函数文件注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
[0081]基于控制进程的不同需求,技术人员可以将函数文件针对不同的技术目的进行编写,以下实施例以测试需求进行举例说明,可选地,上述二进制编码文件为二进制编码的测试脚本文件;上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件包括:
[0082]上述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
[0083]以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
[0084]基于前述实施例的说明,在调用安卓自动化测试框架库文件之后具体的测试过程可以如下:进一步地,如图5所示,上述装置还包括:
[0085]测试单元501,用于在上述调用安卓自动化测试框架库文件之后,通过调用安卓自动化测试框架库文件获取控件信息,并对用户界面进行测试。
[0086]可选地,上述注入单元403,用于通过进程注入函数PTRACE将上述函数文件注入上述被控制进程。
[0087]以上实施例是基于注入启动进程提出的解决方案,本发明实施例还提出了基于被控制进程的解决方案具体如下:本发明实施例还提供了另一种进程控制装置,如图6所示,包括:
[0088]运行控制单元601,用于使被控制进程启动,并开始运行;
[0089]文件接收单元602,用于在上述被控制进程运行过程中接收来自注入启动进程注入的函数文件;上述函数文件为预置的函数文件;
[0090]文件加载单元603,用于通过上述函数文件加载与上述函数文件对应的二进制编码文件;上述二进制编码文件被上述测试进程加载后,上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件。
[0091]上述预置的函数文件,通常可以是技术人员编写的可执行代码。本发明实施例将要实现的是控件级别的控制,这些可执行代码通常是一些编程语言编写的,例如C语言等。这些用编程语言编写的可执行代码不能被进程所直接执行,需要进程依据这些可执行代码加载二进制编码文件并调用库函数实现执行过程。相应的,上述函数文件就是初始执行控制的发出者。
[0092]本发明实施例中,函数文件被注入到被控制进程,使之加载到二进制编码文件并通过运行二进制编码文件调用被控制进程之外的库文件。实现了对被控制进程的控件级别的控制,不用重新签名;可以避免被控制的进程发生异常。
[0093]基于控制进程的不同需求,技术人员可以将函数文件针对不同的技术目的进行编写,以下实施例以测试需求进行举例说明,可选地,上述二进制编码文件为二进制编码的测试脚本文件;上述二进制编码文件在运行过程中调用上述被控制进程之外的库文件包括:
[0094]上述测试脚本文件在运行过程中调用安卓自动化测试框架库文件。
[0095]以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
[0096]基于前述实施例的说明,在调用安卓自动化测试框架库文件之后具体的测试过程可以如下:进一步地,如图7所示,上述装置还包括:
[0097]控件获取单元701,用于在调用安卓自动化测试框架库文件之后,通过调用安卓自动化测试框架库文件获取控件信息;
[0098]输出单元702,用于输出上述控件获取单元701获取的上述获取控件信息。
[0099]本实施例可以实现对用户界面的自动化测试。
[0100]本发明实施例还提供了一种进程控制系统,如图8所示,包括:本发明实施例图4或5所示的装置801,以及本发明实施例图6或7所示的装置802。
[0101]以上实施例中,函数文件最终被编译加载的是二进制的测试脚本文件,那么在测试脚本文件运行过程中,将会实现测试的功能。本实施例中,测试的是调用安卓自动化测试框架库,那么将会对安卓系统下的框架进行测试。可以理解的是,如果测试的对象是其他对象,则可以调用与被测试对象相关的函数库。因此以上调用安卓自动化测试框架库文件不能理解为函数库的唯一调用方式。
[0102]图9是本发明实施例提供的一种服务器结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits, CPU)922 (例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1