CN106326104B - 终端控件测试方法及装置 - Google Patents

终端控件测试方法及装置 Download PDF

Info

Publication number
CN106326104B
CN106326104B CN201510397199.0A CN201510397199A CN106326104B CN 106326104 B CN106326104 B CN 106326104B CN 201510397199 A CN201510397199 A CN 201510397199A CN 106326104 B CN106326104 B CN 106326104B
Authority
CN
China
Prior art keywords
control
testing
test
tested
terminal
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
CN201510397199.0A
Other languages
English (en)
Other versions
CN106326104A (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 CN201510397199.0A priority Critical patent/CN106326104B/zh
Publication of CN106326104A publication Critical patent/CN106326104A/zh
Application granted granted Critical
Publication of CN106326104B publication Critical patent/CN106326104B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种终端控件测试方法,包括:遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;获取当前上下文状态,基于所述上下文状态确定测试页面的返回路径;根据所述返回路径返回测试页面,在所述测试页面对所述待测试控件进行测试。本发明还公开一种终端控件测试装置。本发明实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。

Description

终端控件测试方法及装置
技术领域
本发明涉及到计算机技术领域,特别涉及到终端控件测试方法及装置。
背景技术
随着互联网高速发展,智能手机操作***主要为Android和iOS,为了保证终端发布时的数据,需要提前对终端进行测试,然而,跨平台(Android***平台和iOS***平台)应用测试在技术和人力上均面临较大的压力,特别是Android***的碎片化加大了各公司测试团队对终端测试的难度。目前,可以采取人工实现的回归测试来实现终端的测试过程,然而,现有的终端测试方式无法实现全自动化的遍历,来识别出终端的控件对控件进行测试,导致终端测试方式智能化程度低。
发明内容
本发明实施例提供一种终端控件测试方法及装置,旨在解决现有的终端测试方式无法实现全自动化的遍历,来识别出终端的控件对控件进行测试,导致终端测试方式智能化程度低的问题。
为实现上述目的,本发明实施例提出一种终端控件测试方法,包括:
遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;
获取当前上下文状态,并基于所述上下文状态确定测试页面的返回路径;
根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试。
为了实现上述目的,本发明实施例还进一步提出一种终端控件测试装置,包括:
遍历模块,用于遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;
获取模块,用于获取当前上下文状态;
确定模块,用于基于所述上下文状态确定测试页面的返回路径;
返回模块,用于根据所述返回路径返回测试页面;
测试模块,用于在所述测试页面对所述待测试控件进行测试。
本发明基于提前建立的图表数据模型的节点和边的遍历得到待测试页面,获取上下文状态确定测试页面的返回路径,完成对终端的测试操作,实现自动化全路径遍历。实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。
附图说明
图1为本发明实施例终端控件测试装置所涉及的硬件架构示意图;
图2为本发明终端控件测试方法的第一实施例的流程示意图;
图3为本发明遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件一实施例的流程示意图;
图4为本发明基于所述上下文状态确定测试页面的返回路径一实施例的流程示意图;
图5为本发明根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试一实施例的流程示意图;
图6为本发明终端控件测试方法的第二实施例的流程示意图;
图7为本发明终端控件测试装置的第一实施例的功能模块示意图;
图8为图7中遍历模块一实施例的细化功能模块示意图;
图9为图7中确定模块一实施例的细化功能模块示意图;
图10为图9中判断单元一实施例的细化功能模块示意图;
图11为图7中测试模块一实施例的细化功能模块示意图;
图12为本发明终端控件测试装置的第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;获取当前上下文状态,并基于所述上下文状态确定测试页面的返回路径;根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试。基于提前建立的图表数据模型的节点和边的遍历得到待测试页面,获取上下文状态确定测试页面的返回路径,完成对终端的测试操作,实现自动化全路径遍历。有效避免现有的终端测试方式无法实现全自动化的遍历,来识别出终端的控件对控件进行测试,导致终端测试方式智能化程度低问题。实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。
由于现有的终端测试方式无法实现全自动化的遍历,来识别出终端的控件对控件进行测试,导致终端测试方式智能化程度低问题。
本发明实施例架构一终端控件测试装置,该终端控件测试装置基于提前建立的图表数据模型的节点和边的遍历得到待测试页面,获取上下文状态确定测试页面的返回路径,完成对终端的测试操作,实现自动化全路径遍历。有效避免现有的终端测试方式无法实现全自动化的遍历,来识别出终端的控件对控件进行测试,导致终端测试方式智能化程度低问题。实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。
其中,本实施例终端控件测试装置可以承载于PC端,也可以承载于手机、平板电脑等电子终端。该终端控件测试装置所涉及的硬件架构可以如图1所示。
图1示出了本发明实施例终端控件测试装置所涉及的硬件架构。如图1所示,所述终端控件测试装置所涉及的硬件包括:处理器301,例如CPU,网络接口304,用户接口303,存储器305,通信总线302。其中,通信总线302用于实现该信息推送平台中各组成部件之间的连接通信。用户接口303可以包括显示屏(Display)、键盘(Keyboard)、鼠标等组件,用于接收用户输入的信息,并将接收的信息发送至处理器305进行处理。显示屏可以为LCD显示屏、LED显示屏,也可以为触摸屏,用于显示终端控件测试装置需要显示的数据,例如显示图表数据模型、终端控件测试等操作界面。可选用户接口303还可以包括标准的有线接口、无线接口。网络接口304可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器305可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory),例如磁盘存储器。存储器305可选的还可以是独立于前述处理器301的存储装置。如图1所示,作为一种计算机存储介质的存储器305中可以包括操作***、网络通信模块、用户接口模块以及终端控件测试程序。
在图1所示的终端控件测试装置所涉及的硬件中,网络接口304主要用于连接应用平台,与应用平台进行数据通信;用户接口303主要用于连接客户端,与客户端进行数据通信,接收客户端输入的信息和指令;而处理器301可以用于调用存储器305中存储的终端控件测试程序,并执行以下操作:
遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;
获取当前上下文状态,基于所述上下文状态确定测试页面的返回路径;
根据所述返回路径返回测试页面,在所述测试页面对所述待测试控件进行测试。
进一步地,在一个实施例中,处理器301调用存储器305中存储的终端控件测试程序可以执行以下操作:
遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件;
对所有可点击控件进行过滤,过滤掉重复位置和可调焦属性为是的控件得到过滤后的控件作为待测试控件。
进一步地,在一个实施例中,处理器301调用存储器305中存储的终端控件测试程序可以执行以下操作:
在接收到控件点击操作后,通过上下文状态判断点击操作是否跳转至其他应用;
若是,则判断是否跳转至其他交互界面;
若是,则通过页面标记语言和页面源码判断是否跳转到同一交互界面的其他布局中;
基于上述各个跳转过程确定测试页面的返回路径。
进一步地,在一个实施例中,处理器301调用存储器305中存储的终端控件测试程序可以执行以下操作:
获取上下文状态对应数据包的包名,并通过自我封装的调试接口比对所述包名与预设包名;
若不同,则通过进程命令终止掉该应用;
若相同,则判断跳转至其他应用。
进一步地,在一个实施例中,处理器301调用存储器305中存储的终端控件测试程序可以执行以下操作:
根据所述返回路径返回测试页面;
根据反序列所述控件交互界面图表数据模型的边的数据确定当前待测试的控件;
在所述测试页面对所述当前待测试的控件进行测试。
进一步地,在一个实施例中,处理器301调用存储器305中存储的终端控件测试程序可以执行以下操作:
在完成待测试控件的测试后,获取测试结果;
根据所述测试结果生成测试报告。
本实施例根据上述方案,基于提前建立的图表数据模型的节点和边的遍历得到待测试页面,获取上下文状态确定测试页面的返回路径,完成对终端的测试操作,实现自动化全路径遍历。有效避免现有的终端测试方式无法实现全自动化的遍历,来识别出终端的控件对控件进行测试,导致终端测试方式智能化程度低问题。实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。
基于上述硬件架构,提出本发明终端控件测试方法实施例。
如图2所示,提出本发明一种终端控件测试方法的第一实施例,所述终端控件测试方法包括:
步骤S10,遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;
在本实施例中,预先采用Graph(图表数据模型)来模拟Activity(交互界面)间的链接,并动态绘制Activity Graph(交互界面图表数据模型),将应用的每个Activity抽象为Graph的node(节点),每个Activity之间的跳转关联抽象为edge(边)。在成功建立Activity Graph后,侦测是否需要对终端控件进行测试。所述终端控件进行测试的触发方式可以为多种,例如,1)通过物理按键触发;2)在测试设备与待测试终端连接时触发;3)通过测试设备或者待测试设备上的虚拟按键触发。以上所列举出的终端控件进行测试的触发方式仅仅为示例性的,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它终端控件进行测试的触发方式均在本发明的保护区间内,在此不进行一一穷举。
在终端控件进行测试被触发后,遍历预先建立的控件交互界面Graph的节点和边得到所有可点击控件作为待测试控件。在本实施例中,为了保证全自动遍历终端,提供一种Appium(一种跨平台的测试开源框架)来支持本发明实施例,iOS平台使用UIAutomation(自动化测试)引擎,Android平台4.0以下使用selendroid(原生应用的UI自动化测试框架)引擎,4.0以上使用UIAutomation引擎。
本发明实施例的遍历逻辑为:遍历所有用户界面,甚至所有可点击控件。框架的数据结构建立在Graph上,将应用的每个Activity抽象为Graph的node节点,每个Activity之间的跳转关联抽象为edge边,并且实现定义Graph为方向矢量图,之所以这么做主要是为了实现导航而为之,通过Graph的edge遍历实现Activity的遍历,自增长模式的Graph在遍历每个clickable(可点击区域)时会形成相应的node和edge,新的node和edge会完成递归,并统一由Graph管理。在终端测试之前,提前定义好应用中的Activity.layout(交互界面布局),clickables其实就是通过标准W3C协议获得的终端可点击控件,之所以说通过标准W3C协议主要是因为用到了webdriver(网页驱动),它支持xpath XML(路径语言),获取到当前页面所有可点击控件。
优选地,为了提高终端测试的速度,提升终端测试的体验。参考图3,所述遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件的过程可以包括:
步骤S11,遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件;
步骤S12,对所有可点击控件进行过滤,过滤掉重复位置和可调焦属性为是的控件得到过滤后的控件作为待测试控件。
在本实施例中,为了提高性能,对clickables进行一次过滤,去除了重复位置和focusable(可调焦)属性值为ture的控件。遍历的“引擎”实现模拟用户点击,通过上面的clickables点击进入不同的页面(Activity和layout)或者仅仅是改变了当前的page-source(页面源码)。
本实施例中通过Graph数据建模,图表数据模型形成的关系图可以作为结果的dom(标准对象模型)比对,并且在获取到Activity关系图基础上,可以实现全路径遍历,不单单的使用单一路径导航到目标Activity,在对目标Activity的导航路径选择上采取全路径覆盖。
步骤S20,获取当前上下文状态,并基于所述上下文状态确定测试页面的返回路径;
在遍历获取到所有课点击控件作为待测试控件之后,或者对遍历得到的可点击控件进行过滤得到过滤后的可点击控件作为待测试控件后,获取上下文状态,并基于所述上下文状态确定测试页面的返回路径。
具体的,参考图4,所述基于所述上下文状态确定测试页面的返回路径的过程可以包括:
步骤S21,在接收到控件点击操作后,通过上下文状态判断点击操作是否跳转至其他应用;
步骤S22,若是,则判断是否跳转至其他交互界面;
步骤S23,若是,则通过页面标记语言和页面源码判断是否跳转到同一交互界面的其他布局中;
步骤S24,基于上述各个跳转过程确定测试页面的返回路径。
在本实施例中,上下文管理:遍历算法中的上下文判断情况多变,采用反射、自省手段获取当前上下文状态,以此为基础决定下一步操作,目的是能够最终返回被测layout布局。
具体的,所述通过上下文状态判断点击操作是否跳转至其他应用的步骤包括:获取上下文状态对应数据包的包名,并通过自我封装的调试接口比对所述包名与预设包名;若不同,则通过进程命令终止掉该应用;若相同,则判断跳转至其他应用。
首先判断点击是否跳转到其他应用,通过自我封装的调试接口(在Android***中,所述调试接口为adb接口,也还可以是iOS调试接口或Windows Phone 7***的调试接口等),实现当前package(包)包名比对,如果不同,通过进程命令终止掉该应用;之后判断是否跳转至其他activity,如果有新的activity被发现,则记录在Graph中;之后通过页面标记语言(所述页面标记语言可以是xml,页面xml为用xml写成的页面)布局和page-source判断是否跳转至同一activity的其他layout中,基于上述各个跳转过程确定测试页面的返回路径。
步骤S30,根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试。
在本实施例中,页面导航:通过Graph图的深度或广度遍历获取返回路径后,需要导航到该被测页面的算法。
具体的,参考图5,所述根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试的过程包括:
步骤S31,根据所述返回路径返回测试页面;
步骤S32,根据反序列所述控件交互界面图表数据模型的边的数据确定当前待测试的控件;
步骤S33,在所述测试页面对所述当前待测试的控件进行测试。
在实现导航到该被测页面的算法时,其中的难点为如何导航到多个layout和待滑动页面的某个元素,导航用到的点击控件事先通过序列化存入Graph的edge中,待需要对此对象点击操作时,反序列该edge的数据,获取到该控件。
在本发明其他实施例中,为了提供更好更直观的测试数据,参考图6,在步骤S30之后,还可以包括:
步骤S40,在完成待测试控件的测试后,获取测试结果;
步骤S50,根据所述测试结果生成测试报告。
在完成待测试控件的测试后,获取测试结果,在对终端的待测试控件均测试完毕后,获取该终端所有控件的测试结果,根据所述所有的测试结果生成测试报告,在测试装置本地保存,或者发送至第三方终端,所述第三方终端为与所述测试装置通信连接的终端,例如,手机、pad、笔记本电脑等,或者在测试装置上显示所述测试报告及测试结果,以供测试装置端用户直观的了解测试结果。所述测试结果可以以柱状图或者曲线图等形式体现。
本实施例基于提前建立的图表数据模型的节点和边的遍历得到待测试页面,获取上下文状态确定测试页面的返回路径,完成对终端的测试操作,实现自动化全路径遍历。实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。
对应地,提出本发明终端控件测试装置的第一实施例。参考图7,所述终端控件测试装置包括遍历模块10、获取模块20、确定模块30、返回模块40及测试模块50。
所述遍历模块10,用于遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;
在本实施例中,预先采用Graph来模拟Activity间的链接,并动态绘制ActivityGraph,将应用的每个Activity抽象为Graph的node,每个Activity之间的跳转关联抽象为edge。在成功建立Activity Graph后,侦测是否需要对终端控件进行测试。所述终端控件进行测试的触发方式可以为多种,例如,1)通过物理按键触发;2)在测试设备与待测试终端连接时触发;3)通过测试设备或者待测试设备上的虚拟按键触发。以上所列举出的终端控件进行测试的触发方式仅仅为示例性的,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其它终端控件进行测试的触发方式均在本发明的保护区间内,在此不进行一一穷举。
在终端控件进行测试被触发后,遍历预先建立的控件交互界面Graph的节点和边得到所有可点击控件作为待测试控件。在本实施例中,为了保证全自动遍历终端,提供一种Appium开源框架来支持本发明实施例,iOS平台使用UIAutomation引擎,Android平台4.0以下使用selendroid引擎,4.0以上使用UIAutomation引擎。
本发明实施例的遍历逻辑为:遍历所有用户界面,甚至所有可点击控件。框架的数据结构建立在Graph上,将应用的每个Activity抽象为Graph的node,每个Activity之间的跳转关联抽象为edge,并且实现定义Graph为方向矢量图,之所以这么做主要是为了实现导航而为之,通过Graph的edge遍历实现Activity的遍历,自增长模式的Graph在遍历每个clickable时会形成相应的node和edge,新的node和edge会完成递归,并统一由Graph管理。在终端测试之前,提前定义好应用中的Activity.layout,clickables其实就是通过标准W3C协议获得终端可点击控件,之所以说通过标准W3C协议主要是因为用到了webdriver网页驱动,它支持xpath XML路径语言,获取到当前页面所有可点击控件。
优选地,为了提高终端测试的速度,提升终端测试的体验。参考图8,所述遍历模块10包括:遍历单元11及过滤单元12,
所述遍历单元11,用于遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件;
所述过滤单元12,用于对所有可点击控件进行过滤,过滤掉重复位置和可调焦属性为是的控件得到过滤后的控件作为待测试控件。
在本实施例中,为了提高性能,对clickables进行一次过滤,去除了重复位置和focusable为ture的控件。遍历的“引擎”实现模拟用户点击,通过上面的clickables点击进入不同的页面(Activity和layout)或者仅仅是改变了当前的page-source。
本实施例中通过Graph数据建模,图表数据模型形成的关系图可以作为结果的dom比对,并且在获取到Activity关系图基础上,可以实现全路径遍历,不单单的使用单一路径导航到目标Activity,在对目标Activity的导航路径选择上采取全路径覆盖。
所述获取模块20,用于获取当前上下文状态;
所述确定模块30,用于基于所述上下文状态确定测试页面的返回路径;
在遍历获取到所有课点击控件作为待测试控件之后,或者对遍历得到的可点击控件进行过滤得到过滤后的可点击控件作为待测试控件后,获取上下文状态,并基于所述上下文状态确定测试页面的返回路径。
具体的,参考图9,所述确定模块30包括:判断单元31及确定单元32,
所述判断单元31,用于在接收到控件点击操作后,通过上下文状态判断点击操作是否跳转至其他应用;还用于若跳转至其他应用,则判断是否跳转至其他交互界面;还用于若跳转至其他交互界面,则通过页面标记语言和页面源码判断是否跳转到同一交互界面的其他布局中;
所述确定单元32,用于基于上述各个跳转过程确定测试页面的返回路径。
在本实施例中,上下文管理:遍历算法中的上下文判断情况多变,采用反射、自省手段获取当前上下文状态,以此为基础决定下一步操作,目的是能够最终返回被测layout。
具体的,参考图10,所述判断单元31包括:获取子单元311,用于获取上下文状态对应数据包的包名,并通过自我封装的调试接口比对所述包名与预设包名;处理子单元312,用于若所述包名与预设包名不同,则通过进程命令终止掉该应用;判断子单元313,用于若所述包名与预设包名相同,则判断跳转至其他应用。
首先判断点击是否跳转到其他应用,通过自我封装的调试接口(在Android***中,所述调试接口为adb接口,也还可以是iOS调试接口或Windows Phone 7***的调试接口等),实现当前package包包名比对,如果不同,通过进程命令终止掉该应用;之后判断是否跳转至其他activity,如果有新的activity被发现,则记录在Graph中;之后通过页面标记语言布局和page-source判断是否跳转至同一activity的其他layout中,基于上述各个跳转过程确定测试页面的返回路径。
所述返回模块40,用于根据所述返回路径返回测试页面;
所述测试模块50,用于在所述测试页面对所述待测试控件进行测试。
在本实施例中,页面导航:通过图表数据模型图的深度或广度遍历获取返回路径后,需要导航到该被测页面的算法。
具体的,参考图11所述测试模块50包括:返回单元51和测试单元52,
所述返回单元51,用于根据所述返回路径返回测试页面;还用于根据反序列所述控件交互界面图表数据模型的边的数据返回当前待测试的控件;
所述测试单元52,用于在所述测试页面对所述当前待测试的控件进行测试。
在实现导航到该被测页面的算法时,其中的难点为如何导航到多个layout和待滑动页面的某个元素,导航用到的点击控件事先通过序列化存入Graph的edge中,待需要对此对象点击操作时,反序列该edge的数据,获取到该控件。
在本发明终端控件测试装置的第二实施例中,参考图12,所述终端控件测试装置还包括生成模块60,
所述获取模块20,还用于在完成待测试控件的测试后,获取测试结果;
所述生成模块60,用于根据所述测试结果生成测试报告。
在完成待测试控件的测试后,获取测试结果,在对终端的待测试控件均测试完毕后,获取该终端所有控件的测试结果,根据所述所有的测试结果生成测试报告,在测试装置本地保存,或者发送至第三方终端,所述第三方终端为与所述测试装置通信连接的终端,例如,手机、pad、笔记本电脑等,或者在测试装置上显示所述测试报告及测试结果,以供测试装置端用户直观的了解测试结果。所述测试结果可以以柱状图或者曲线图等形式体现。
本实施例基于提前建立的图表数据模型的节点和边的遍历得到待测试页面,获取上下文状态确定测试页面的返回路径,完成对终端的测试操作,实现自动化全路径遍历。实现全自动化的遍历来识别出终端的控件对控件进行测试,提高了终端测试的智能化程度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

Claims (14)

1.一种终端控件测试方法,其特征在于,所述方法应用于的终端控件测试装置承载于电子终端,包括:
遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;所述节点为应用中的交互界面,所述边为所述交互界面之间的跳转关联;所述控件交互界面图表数据模型的构建过程,包括:将所述应用中的交互界面抽象为所述控件交互界面图表数据模型的节点;将所述交互界面之间的跳转关联抽象为所述控件交互界面图表数据模型的边;将所述控件交互界面图表数据模型定义为方向矢量图,用于实现导航;
所述控件交互界面图表数据模型是自增长式的模型,若在遍历时发现新的节点和新的边,将所述新的节点和新的边统一至所述控件交互界面图表数据模型;
获取当前上下文状态,基于所述上下文状态确定测试页面的返回路径;所述上下文状态为采用反射、自省手段获取的,并作为基础决定下步操作,能够返回被测布局的上下文;
根据所述返回路径返回测试页面,在所述测试页面对所述待测试控件进行测试。
2.如权利要求1所述的终端控件测试方法,其特征在于,所述遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件的步骤包括:
遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件;
对所有可点击控件进行过滤,过滤掉重复位置和可调焦属性为是的控件得到过滤后的控件作为待测试控件。
3.如权利要求1所述的终端控件测试方法,其特征在于,所述基于所述上下文状态确定测试页面的返回路径的步骤包括:
在接收到控件点击操作后,通过上下文状态判断点击操作是否跳转至其他应用;
若是,则判断是否跳转至其他交互界面;
若是,则通过页面标记语言和页面源码判断是否跳转到同一交互界面的其他布局中;
基于跳转过程确定测试页面的返回路径。
4.如权利要求3所述的终端控件测试方法,其特征在于,所述通过上下文状态判断点击操作是否跳转至其他应用的步骤包括:
获取上下文状态对应数据包的包名,并通过自我封装的调试接口比对所述包名与预设包名;
若不同,则通过进程命令终止掉该应用;
若相同,则判断跳转至其他应用。
5.如权利要求1至4任一项所述的终端控件测试方法,其特征在于,所述根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试的步骤包括:
根据所述返回路径返回测试页面;
根据反序列所述控件交互界面图表数据模型的边的数据返回当前待测试的控件;
在所述测试页面对所述当前待测试的控件进行测试。
6.如权利要求1至4任一项所述的终端控件测试方法,其特征在于,所述根据所述返回路径返回测试页面,并在所述测试页面对所述待测试控件进行测试的步骤之后,还包括:
在完成待测试控件的测试后,获取测试结果;
根据所述测试结果生成测试报告。
7.一种终端控件测试装置,其特征在于,所述终端控件测试装置承载于电子终端,包括:
遍历模块,用于遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件作为待测试控件;所述节点为应用中的交互界面,所述边为所述交互界面之间的跳转关联;所述控件交互界面图表数据模型的构建过程,包括:将所述应用中的交互界面抽象为所述控件交互界面图表数据模型的节点;将所述交互界面之间的跳转关联抽象为所述控件交互界面图表数据模型的边;将所述控件交互界面图表数据模型定义为方向矢量图,用于实现导航;
所述控件交互界面图表数据模型是自增长式的模型,若在遍历时发现新的节点和新的边,将所述新的节点和新的边统一至所述控件交互界面图表数据模型
获取模块,用于获取当前上下文状态;所述上下文状态为采用反射、自省手段获取的,并作为基础决定下步操作,能够返回被测布局的上下文;
确定模块,用于基于所述上下文状态确定测试页面的返回路径;
返回模块,用于根据所述返回路径返回测试页面;
测试模块,用于在所述测试页面对所述待测试控件进行测试。
8.如权利要求7所述的终端控件测试装置,其特征在于,所述遍历模块包括:
遍历单元,用于遍历预先建立的控件交互界面图表数据模型的节点和边得到所有可点击控件;
过滤单元,用于对所有可点击控件进行过滤,过滤掉重复位置和可调焦属性为是的控件得到过滤后的控件作为待测试控件。
9.如权利要求7所述的终端控件测试装置,其特征在于,所述确定模块包括:
判断单元,用于在接收到控件点击操作后,通过上下文状态判断点击操作是否跳转至其他应用;还用于若跳转至其他应用,则判断是否跳转至其他交互界面;还用于若跳转至其他交互界面,则通过页面标记语言和页面源码判断是否跳转到同一交互界面的其他布局中;
确定单元,用于基于跳转过程确定测试页面的返回路径。
10.如权利要求9所述的终端控件测试装置,其特征在于,所述判断单元,包括:
获取子单元,用于获取上下文状态对应数据包的包名,并通过自我封装的调试接口比对所述包名与预设包名;
处理子单元,用于若所述包名与预设包名不同,则通过进程命令终止掉该应用;
判断子单元,用于若所述包名与预设包名相同,则判断跳转至其他应用。
11.如权利要求7至9任一项所述的终端控件测试装置,其特征在于,所述测试模块包括:
返回单元,用于根据所述返回路径返回测试页面;还用于根据反序列所述控件交互界面图表数据模型的边的数据返回当前待测试的控件;
测试单元,用于在所述测试页面对所述当前待测试的控件进行测试。
12.如权利要求7至9任一项所述的终端控件测试装置,其特征在于,所述终端控件测试装置还包括生成模块,
所述获取模块,还用于在完成待测试控件的测试后,获取测试结果;
所述生成模块,用于根据所述测试结果生成测试报告。
13.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序,所述至少一条指令、所述至少一段程序由所述处理器加载并执行以实现如权利要求1-6任一所述的终端控件测试方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序,所述至少一条指令、所述至少一段程序由处理器加载并执行以实现如权利要求1-6任一所述的终端控件测试方法。
CN201510397199.0A 2015-07-08 2015-07-08 终端控件测试方法及装置 Active CN106326104B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510397199.0A CN106326104B (zh) 2015-07-08 2015-07-08 终端控件测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510397199.0A CN106326104B (zh) 2015-07-08 2015-07-08 终端控件测试方法及装置

Publications (2)

Publication Number Publication Date
CN106326104A CN106326104A (zh) 2017-01-11
CN106326104B true CN106326104B (zh) 2021-03-16

Family

ID=57725550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510397199.0A Active CN106326104B (zh) 2015-07-08 2015-07-08 终端控件测试方法及装置

Country Status (1)

Country Link
CN (1) CN106326104B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664364B (zh) * 2017-03-31 2023-05-09 腾讯科技(深圳)有限公司 一种终端测试方法及装置
CN107341107B (zh) * 2017-07-04 2022-04-29 飞天诚信科技股份有限公司 一种嵌入式开发的自动化测试方法及测试主机
CN107562619B (zh) * 2017-08-15 2020-03-31 福建天晴数码有限公司 一种基于神经元模型的自动遍历控件方法及终端
CN109558307B (zh) * 2017-09-26 2022-03-22 卓望数码技术(深圳)有限公司 一种游戏程序的测试方法及***
CN109634831A (zh) * 2017-10-09 2019-04-16 飞狐信息技术(天津)有限公司 一种Android应用程序GUI自动遍历测试方法及***
CN108829389A (zh) * 2018-03-29 2018-11-16 中南大学 基于Appium的安卓应用自动化触发执行方法
CN108681508B (zh) * 2018-05-15 2022-04-01 福建天泉教育科技有限公司 一种基于视觉识别的测试方法及终端
CN109739764A (zh) * 2018-12-29 2019-05-10 中国联合网络通信集团有限公司 一种应用程序测试方法和装置
CN109857668A (zh) * 2019-02-03 2019-06-07 苏州市龙测智能科技有限公司 Ui自动化功能测试方法、测试装置、测试设备及存储介质
CN110139302B (zh) * 2019-05-17 2022-12-06 广州品唯软件有限公司 一种app业务类型定位方法及装置
CN110888812B (zh) * 2019-11-26 2023-11-07 国核自仪***工程有限公司 终端页面的响应时间的测试***及测试方法
CN111240957B (zh) * 2019-11-27 2023-09-15 广东电网有限责任公司信息中心 Android应用的Activity关系图生成方法
CN111694754B (zh) * 2020-07-30 2023-04-07 抖音视界有限公司 应用程序的测试方法、装置、电子设备及计算机介质
CN112180189A (zh) * 2020-09-09 2021-01-05 杭州涂鸦信息技术有限公司 一种基于多品类智能模块的自动化检测方法、装置及***
CN112148608B (zh) * 2020-09-24 2021-11-05 上海交通大学 一种基于控件功能标注的移动端自动化软件测试方法
CN114979366B (zh) * 2021-02-24 2023-10-13 腾讯科技(深圳)有限公司 一种控件提示方法、装置、终端以及存储介质
CN113986769A (zh) * 2021-12-24 2022-01-28 深圳市明源云链互联网科技有限公司 应用测试方法、***、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019942A (zh) * 2012-12-31 2013-04-03 广东欧珀移动通信有限公司 一种基于安卓***的待测应用自动测试方法和***
CN104461900A (zh) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 用户界面的测试方法、中控服务器、测试终端及***
CN104598380A (zh) * 2015-01-16 2015-05-06 广东欧珀移动通信有限公司 一种基于控件的自动化测试方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6008202A (en) * 1995-01-23 1999-12-28 University Of Pittsburgh Stable lipid-comprising drug delivery complexes and methods for their production

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019942A (zh) * 2012-12-31 2013-04-03 广东欧珀移动通信有限公司 一种基于安卓***的待测应用自动测试方法和***
CN104461900A (zh) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 用户界面的测试方法、中控服务器、测试终端及***
CN104598380A (zh) * 2015-01-16 2015-05-06 广东欧珀移动通信有限公司 一种基于控件的自动化测试方法及***

Also Published As

Publication number Publication date
CN106326104A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN106326104B (zh) 终端控件测试方法及装置
US9342237B2 (en) Automated testing of gesture-based applications
CN107506300B (zh) 一种用户界面测试方法、装置、服务器和存储介质
CN107291438B (zh) 自动化脚本的生成方法、装置及电子设备
US9720799B1 (en) Validating applications using object level hierarchy analysis
CN108345543B (zh) 一种数据处理方法、装置、设备及存储介质
US9003235B2 (en) Indicating coverage of web application testing
WO2021184725A1 (zh) 用户界面测试方法、装置、存储介质及计算机设备
CN107688529B (zh) 组件调试方法和装置
CN107608901B (zh) 基于Jmeter的测试方法及装置、存储介质、电子设备
CN111428166A (zh) 页面配置方法、页面元素替换方法、装置、设备及介质
CN111177617A (zh) 基于运维管理***的web直接运维方法、装置及电子设备
CN109873735B (zh) H5页面的性能测试方法、装置和计算机设备
US8918762B2 (en) Generating test plans and test cases from service-oriented architecture and process models
WO2017066125A1 (en) Test simulation for software defined networking environments
CN108415804A (zh) 获取信息的方法、终端设备及计算机可读存储介质
CN107368420A (zh) Api测试方法、装置及电子设备
CN110147327B (zh) 一种基于多粒度的web自动化测试管理方法
CN108197024B (zh) 嵌入式浏览器调试方法、调试终端及计算机可读存储介质
CN110659198A (zh) 应用程序的测试用例执行方法、装置和软件测试***
CN104102578A (zh) 测试方法及***、操作端
CN111367812A (zh) 测试方法、电子设备及可读存储介质
CN111736951A (zh) 自动驾驶的仿真方法、计算机设备、及存储介质
US9449527B2 (en) Break-fix simulator
CN104796929B (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