安卓界面自动化测试方法、装置及系统的制作方法_4

文档序号:8502117阅读:来源:国知局
在计算机上编写测试用例,因此还可以进行多终端的协同测试。
[0109]本发明提供的测试系统,包括图4所示的服务端和图5所示的测试端。
[0110]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0111]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种安卓界面自动化测试方法,其特征在于,包括: 根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识; 将所述被测应用的进程标识对应的被测进程附加到目标进程; 分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址; 在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。
2.根据权利要求1所述的方法,其特征在于,所述根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识之前,还包括: 接收所述测试端发送的所述测试信令。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端之后,还包括: 监听到来自所述测试端的测试程序的连接后,与所述测试端建立连接; 接收所述测试程序发送的操作指令并执行所述操作指令,返回执行结果给所述测试程序。
4.根据权利要求3所述的方法,其特征在于,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
5.一种安卓界面自动化测试方法,其特征在于,包括: 向服务端发送测试指令,所述测试指令包含被测应用的代码,以使所述服务端接收到所述测试指令后根据所述代码查找所述代码对应的被测应用的进程标识,在所述被测应用的进程标识对应的被测进程中创建第一服务端; 通过所述第一服务端对所述被测进程进行测试。
6.根据权利要求5所述的方法,其特征在于,所述通过所述第一服务端对所述被测进程进行测试之前,还包括: 向所述服务端发送测试程序的连接,以使所述服务端监听到所述连接后与所述测试端建立连接。
7.根据权利要求6所述的方法,其特征在于,所述通过所述第一服务端对所述被测进程进行测试,包括: 向所述服务端发送操作指令; 接收所述服务端返回的执行结果。
8.根据权利要求7所述的方法,其特征在于,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
9.一种服务端,其特征在于,包括: 查找模块,用于根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识; 处理模块,用于将所述被测应用的进程标识对应的被测进程附加到目标进程; 获取模块,用于分别获取用于分配内存的函数在所述目标进程中的第一地址、用于加载动态链接模块的函数在所述目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在所述目标进程中的第三地址; 创建模块,用于在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端,以使所述测试端通过所述第一服务端对所述被测进程进行测试。
10.根据权利要求9所述的服务端,其特征在于,所述服务端还包括: 接收模块,用于在所述查找模块根据测试端发送的测试指令中包含的被测应用的代码查找所述代码对应的被测应用的进程标识之前,接收所述测试端发送的所述测试信令。
11.根据权利要求9或10所述的服务端,其特征在于,所述处理模块还用于在所述目标进程中通过依次调用所述用于加载动态链接模块的函数、所述用于获取测试桩加载器模块中目标函数的地址的函数和所述目标函数,在所述被测进程中创建第一服务端之后,监听来自所述测试端的测试程序的连接; 所述处理模块还用于监听到来自所述测试端的测试程序的连接后,与所述测试端建立连接; 所述接收模块还用于接收所述测试程序发送的操作指令; 所述处理模块还用于执行所述操作指令; 所述服务端还包括:发送模块,用于返回执行结果给所述测试程序。
12.根据权利要求11所述的服务端,其特征在于,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
13.—种测试端,其特征在于,包括: 发送模块,用于向服务端发送测试指令,所述测试指令包含被测应用的代码,以使所述服务端接收到所述测试指令后根据所述代码查找所述代码对应的被测应用的进程标识,在所述被测应用的进程标识对应的被测进程中创建第一服务端; 处理模块,用于通过所述第一服务端对所述被测进程进行测试。
14.根据权利要求13所述的测试端,其特征在于,所述发送模块还用于在所述处理模块通过所述第一服务端对所述被测进程进行测试之前,向所述服务端发送测试程序的连接,以使所述服务端监听到所述连接后与所述测试端建立连接。
15.根据权利要求14所述的测试端,其特征在于,所述发送模块还用于向所述服务端发送操作指令; 所述测试端还包括: 接收模块,用于接收所述服务端返回的执行结果。
16.根据权利要求15所述的测试端,其特征在于,所述操作指令包括:获取控件树,或,获取控件文本,或,点击按钮。
17.—种测试系统,其特征在于,包括权利要求9?12任一所述的服务端和权利要求13?16任一所述的测试端。
【专利摘要】本发明提供一种安卓界面自动化测试方法、装置及系统,该方法包括:根据被测应用的代码查找代码对应的被测应用的进程标识后,将被测进程附加到目标进程,接着分别获取用于分配内存的函数在目标进程中的第一地址、用于加载动态链接模块的函数在目标进程中的第二地址和用于获取测试桩加载器模块中目标函数的地址的函数在目标进程中的第三地址,在目标进程中通过依次调用三个函数,在被测进程中创建第一服务端,使得测试端通过该第一服务端对被测进程进行测试。在测试过程中无需获取被测应用的程序源代码就可实现自动化测试,而且不需要对应用进行重签名,还可同时测试多个应用或多个进程。
【IPC分类】G06F11-36
【公开号】CN104834586
【申请号】CN201410046661
【发明人】杨寿春
【申请人】腾讯科技(深圳)有限公司
【公开日】2015年8月12日
【申请日】2014年2月10日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1