CN105095064B - 一种自绘控件的测试方法、测试装置和自绘控件以及系统 - Google Patents

一种自绘控件的测试方法、测试装置和自绘控件以及系统 Download PDF

Info

Publication number
CN105095064B
CN105095064B CN201410201695.XA CN201410201695A CN105095064B CN 105095064 B CN105095064 B CN 105095064B CN 201410201695 A CN201410201695 A CN 201410201695A CN 105095064 B CN105095064 B CN 105095064B
Authority
CN
China
Prior art keywords
owner
drawing control
test device
test
information
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
CN201410201695.XA
Other languages
English (en)
Other versions
CN105095064A (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 CN201410201695.XA priority Critical patent/CN105095064B/zh
Publication of CN105095064A publication Critical patent/CN105095064A/zh
Application granted granted Critical
Publication of CN105095064B publication Critical patent/CN105095064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Pinball Game Machines (AREA)

Abstract

本发明实施例公开了一种自绘控件的测试方法、测试装置和自绘控件以及系统,用于提高对自绘控件的测试效率和精确度。其中一种方法包括:测试装置通过与被测试的自绘控件的第一次交互,获取到所述自绘控件的内容信息;所述测试装置根据所述内容信息对所述自绘控件进行测试操作;所述测试装置通过与测试后的所述自绘控件的第二次交互,获取到所述自绘控件的状态信息;所述测试装置根据所述状态信息校验所述自绘控件。

Description

一种自绘控件的测试方法、测试装置和自绘控件以及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种自绘控件的测试方法、测试装置和自绘控件以及系统。
背景技术
控件是用户可与之交互以输入或操作数据的对象,控件通常出现在对话框中或工具栏等窗口上。通常控件的类型可分为两种:一种控件是操作系统控件,它是由操作系统提供的常规免费自定义控件,例如,Windows系统中提供给用户使用的控件。另一种控件就是由开发者自己开发设计出来的控件,称之为自绘控件,由于自绘控件并不像操作系统控件那样千篇一律,而是可以由开发者根据自己的需要以及审美来绘制,例如开发者可以自己设计控件外型和功能要求,自绘控件的诸多便利越来越受到用户的欢迎。
控件在创建成功之后通常需要对其进行测试,以验证该控件是否可以满足特定的需求,基于控件的不同分类,现有技术中分别采用了不同的测试方式。对于操作系统控件,操作系统中可以提供一系列应用程序接口来创建并操作它,例如一个Windows控件被创建后,测试装置在对该Windows控件测试时,可以通过操作系统提供的应用程序接口找到被测控件的句柄,再通过一些应用程序接口,就可以获得这个控件的相关信息,例如可以获得被测控件的位置坐标等信息。测试装置根据从应用程序接口获取到的信息对被测控件进行测试操作,测试装置获取到测试结果后也可以通过应用程序接口对被测控件进行校验,从而验证被测控件是否可满足特定的需求。
但是对于自绘控件来说,它未必符合操作系统创建的控件标准,故无法通过操作系统提供的应用程序接口找到被测控件的句柄以及获得被测控件的相关信息。为了实现对自绘控件的测试,现有的做法就是先人工记录下所有自绘控件的相对坐标,在测试装置中为每个自绘控件存储下这些坐标信息。再进行测试的时候,通过这些已经存储的位置信息找到被测控件的位置即可进行测试操作,但是测试方法的测试效率较低,并且需要人工操作。另外在对测试操作产生的测试结果进行校验时,通常采用的方式是对被测控件所在的位置进行位图比对、灰度计算等方法,校验测试操作得到的测试结果是否可满足特定的需求。但是这种对自绘控件的测试方法至少存在以下问题:1)、当被测控件有调整或是承载被测控件的窗口布局有调整时,需要人工重新输入被测控件的位置信息,增加了人工维护成本;2)校验时通过位图比对、灰度计算的方式来校验测试结果准确度不高。
发明内容
本发明实施例提供了一种自绘控件的测试方法、测试装置和自绘控件以及系统,用于提高对自绘控件的测试效率和精确度。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种自绘控件的测试方法,包括:
测试装置通过与被测试的自绘控件的第一次交互,获取到所述自绘控件的内容信息;
所述测试装置根据所述内容信息对所述自绘控件进行测试操作;
所述测试装置通过与测试后的所述自绘控件的第二次交互,获取到所述自绘控件的状态信息;
所述测试装置根据所述状态信息校验所述自绘控件。
第二方面,本发明实施例还提供另一种自绘控件的测试方法,包括:
自绘控件通过与测试所述自绘控件的测试装置的第一次交互,向所述测试装置发送所述自绘控件的内容信息;
所述自绘控件通过与所述测试装置的第二次交互,向所述测试装置发送所述自绘控件的状态信息。
第三方面,本发明实施例还提供一种测试装置,包括:
第一交互模块,用于通过与被测试的自绘控件的第一次交互,获取到所述自绘控件的内容信息;
测试模块,用于根据所述内容信息对所述自绘控件进行测试操作;
第二交互模块,用于通过与测试后的所述自绘控件的第二次交互,获取到所述自绘控件的状态信息;
校验模块,用于根据所述状态信息校验所述自绘控件。
第四方面,本发明实施例还提供一种自绘控件,包括:
第一交互模块,用于通过与测试所述自绘控件的测试装置的第一次交互,向所述测试装置发送所述自绘控件的内容信息;
第二交互模块,用于通过与所述测试装置的第二次交互,向所述测试装置发送所述自绘控件的状态信息。
第五方面,本发明实施例还提供一种自绘控件的测试系统,包括:
如前述第三方面所述的测试装置和如前述第四方面所述的自绘控件,所述测试装置和所述自绘控件之间通过可通信的方式连接。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,测试装置首先通过与被测试的自绘控件的第一次交互,获取到自绘控件的内容信息,测试装置根据上述内容信息对自绘控件进行测试操作,在测试操作完成之后,测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息,最后测试装置根据状态信息校验自绘控件。由于测试装置通过与自绘控件的两次交互就可以完成对自绘控件的自动化测试,而无需由人工输入,故测试效率较高,并且即使被测试的自绘控件所在窗口布局有调整时,测试装置通过与自绘控件的第一次交互,可以从内容信息中获取到自绘控件调整后的最新内容,另外测试装置在对自绘控件测试之后通过与自绘控件的第二次交互获取到了自绘控件的状态信息,该状态信息是自绘控件被测试之后呈现的状态,故使用该状态信息校验自绘控件时可以得到精确的校验结果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种自绘控件的测试方法的流程方框示意图;
图2为本发明实施例提供的另一种自绘控件的测试方法的流程方框示意图;
图3-a为为本发明实施例提供的测试装置向被测的自绘控件发送内容请求信息的实现方式示意图;
图3-b为本发明实施例提供的自绘控件向测试装置返回内容信息的实现方式示意图;
图4-a为本发明实施例提供的一种测试装置的组成结构示意图;
图4-b为本发明实施例提供的一种测试装置中的第一交互模块的组成结构示意图;
图4-c为本发明实施例提供的一种测试装置中的第二交互模块的组成结构示意图;
图4-d为本发明实施例提供的一种测试模块的组成结构示意图;
图4-e为本发明实施例提供的一种校验模块的组成结构示意图;
图5-a为本发明实施例提供的一种自绘控件的组成结构示意图;
图5-b为本发明实施例提供的一种自绘控件中的第一交互模块的组成结构示意图;
图5-c为本发明实施例提供的一种自绘控件中的第二交互模块的组成结构示意图;
图6为本发明实施例提供的一种自绘控件的测试系统的组成结构示意图。
具体实施方式
本发明实施例提供了一种自绘控件的测试方法、测试装置和自绘控件以及系统,用于提高对自绘控件的测试效率和精确度。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明自绘控件的测试方法的一个实施例,可应用于对自绘控件的自动化测试中,具体可以包括如下步骤:测试装置通过与被测试的自绘控件的第一次交互,获取到上述自绘控件的内容信息;测试装置根据上述内容信息对自绘控件进行测试操作;测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息;测试装置根据上述状态信息校验自绘控件。
请参阅图1所示,本发明一个实施例提供的自绘控件的测试方法,可以包括如下步骤:
101、测试装置通过与被测试的自绘控件的第一次交互,获取到上述自绘控件的内容信息。
在本发明的一些实施例中,自绘控件通常出现在对话框中或工具栏等窗口上,用户可通过自绘控件输入或操作数据。自绘控件被开发者设计完成之后,通常需要对自绘控件进行测试,以验证开发者设计的自绘控件是否可以满足一些特定的需求。本发明实施例中为了完成对自绘控件的自动化测试,通过测试装置与自绘控件的两次交互,从而就实现对自绘控件的自动化测试,而不需要人工输入信息,本发明实施例提供的测试装置可用来取代人为驱动的测试行为,相对人工测试而言,自动化测试更加节省人力、时间和硬件资源,提高测试效率,例如,本发明实施例提供的测试装置可以基于用户界面(UserInterface,UI)与自绘控件进行两次交互,从而完成对自绘控件的自动化测试。
在本发明实施例中,测试装置与自绘控件之间通过可通信的方式建立连接关系,当测试装置需要对自绘控件测试时,测试装置首先通过与被测试的自绘控件的第一次交互,获取到自绘控件的内容信息,由于测试装置与被测试的自绘控件建立有连接关系,测试装置与自绘控件之间可以通过已经规定的信息交互方式获取到自绘控件的内容信息,测试装置可以自定义一些信息的构成,然后在设计自绘控件的过程中进行内置,以便于获取到自绘控件的内容信息。其中,测试装置从自绘控件获取到的是自绘控件的内容信息,该内容信息是测试装置对自绘控件进行测试操作所必要的信息,具体获取自绘控件的哪方面内容信息由测试装置需要对自绘控件执行什么样的测试操作决定。举例说明,内容信息可以包括:自绘控件的位置坐标、自绘控件的尺寸、自绘控件的颜色等。通常的,自绘控件的位置坐标可以是自绘控件相对于显示屏幕的左上角位置,也可以是自绘控件相对于该自绘控件所在窗口的左上角偏移的位置。本发明实施例中测试装置通过与自绘控件的第一次交互,测试装置主动的获取到自绘控件的内容信息,而无需人工记录下所有自绘控件的位置坐标,故即使自绘控件有调整或者承载自绘控件的窗口布局有调整时,由于测试装置是与自绘控件进行交互而获取到自绘控件的内容信息,该内容信息必然表示的是自绘控件的最新内容,而无需人工的重复记录。
需要说明的是,在本发明的一些实施例中,测试装置通过与自绘控件的一次交互获取自绘控件的内容信息可以通过以下方式实现,具体的,步骤101测试装置通过与被测试的自绘控件的第一次交互,获取到上述自绘控件的内容信息,包括如下步骤:
A1、测试装置向被测试的自绘控件发送内容请求信息,其中,内容请求信息包括:测试装置需要测试的控件身份识别码(IDentity,ID)和与控件ID对应的请求内容;
A2、测试装置接收自绘控件根据内容请求信息发送的内容信息,其中,内容信息包括:自绘控件中对应于上述请求内容的信息。
具体的,测试装置在需要对自绘控件进行测试时,测试装置可以生成内容请求信息,在内容请求信息中携带需要测试的控件ID,还可以携带请求获取自绘控件的哪些内容信息,以向自绘控件指示需要反馈哪些内容。其中,控件ID用于区分需要被测试的多个自绘控件,开发者可以给各个自绘控件定义一个控件ID,测试装置在内容请求信息中携带需要测试的控件ID。需要测试的自绘控件接收到测试装置下发的内容请求信息之后,自绘控件可以通过内容请求信息可以获取到测试装置需要本控件的哪些内容,按照内容请求信息的要求,自绘控件可以生成内容信息,该内容信息包括了对应于测试装置请求的信息。然后通过与测试装置的通信路径发送给测试装置。
需要说明的是,测试装置与自绘控件的第一次交互可以通过上述的请求与响应的方式来实现测试装置对自绘控件的内容信息获取,另外,测试装置还可以采用预置的消息传递机制来获取到自绘控件的内容信息,例如,测试装置与自绘控件之间预先预定一个消息ID,测试装置使用该消息ID传递消息时,自绘控件也使用该消息ID来传递内容信息。这对于测试装置和自绘控件而言,消息设定更简洁,不需要重新自定义消息。
具体的,在本发明的一些实施例中,步骤A1测试装置向被测试的自绘控件发送内容请求信息,可以包括如下步骤:
测试装置通过回调函数的方式向自绘控件发送内容请求信息。
其中,测试装置可以采用回调函数的方式,回调函数不是由该函数的实现方直接调用,当自绘控件接收到测试装置发送内容请求信息这一特定事件或条件发生时由自绘控件来调用的,自绘控件可以用于对内容请求信息进行响应,由于测试装置不触发内容请求信息自绘控件也就不会响应,故不会导致自绘控件的额外负荷。
102、测试装置根据上述内容信息对自绘控件进行测试操作。
在本发明实施例中,测试装置为了对自绘控件进行测试操作,需要获取到被测试的自绘控件的内容信息,当测试装置通过与自绘控件的第一次交互获取到自绘控件的内容信息之后,测试装置可以根据该获取到的内容信息对自绘控件进行测试操作。测试装置从自绘控件获取到的是自绘控件的内容信息,该内容信息是测试装置对自绘控件进行测试操作所必要的信息,具体获取自绘控件的哪方面内容信息由测试装置需要对自绘控件执行什么样的测试操作决定。举例说明,若测试装置需要使用自绘控件的内容信息为自绘控件的位置坐标时,测试装置通过与自绘控件的第一次交互需要获取到自绘控件的位置坐标,测试装置获取到自绘控件的位置坐标之后,测试装置通过位置坐标可以从显示屏幕上确定出自绘控件的位置,然后按照需要对自绘控件进行特定方面的测试。
具体的,在本发明的一些实施例中,步骤102测试装置根据内容信息对自绘控件进行测试操作,可以包括:
B1、测试装置获取测试用例;
B2、测试装置根据内容信息对自绘控件进行定位,得到自绘控件在屏幕上出现的位置;
B3、测试装置根据测试用例对定位出的自绘控件进行测试。
测试装置测试的目标不同就需要获取相应的测试用例,其中,测试用例可以是为了验证一个功能点而设计的一系列操作,通过执行一个或几个测试操作,完成对自绘控件的特定功能校验,在测试用例中通常设计有执行什么样的操作、符合要求的预期结果是什么等等。例如,测试操作可以是点击、输入文本等操作,预期结果包括自绘控件符合特定要求的状态。其中,步骤B2中测试装置根据内容信息对自绘控件进行定位,也可以先获取到自绘控件相对于该控件所在窗口的位置,然后再确定出自绘控件在屏幕上出现的位置。
103、测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息。
在本发明实施例中,为了实现对自绘控件的校验,测试装置可以与测试后的自绘控件进行第二次交互,获取到被测试后的自绘控件的状态信息。其中,自绘控件在测试装置对其测试之后通过与测试装置的交互向测试装置反馈状态信息,该状态信息表示了自绘控件被测试之后呈现的状态,测试装置通过对状态信息的判断可以实现对自绘控件的校验,由于本发明实施例中测试装置对自绘控件的校验也是通过测试装置与自绘控件的交互完成,而不需要按照现有技术一样进行位图比对、灰度计算,故可以得到精确的校验结果,自动化测试效率很高。
在本发明的实施例中,为了完成对自绘控件的自动化测试,在测试装置对自绘控件执行测试操作之后,测试装置仍然需要与被测试后的自绘控件进行第二次交互,从而实现对自绘控件的自动化测试,而不需要人工输入信息,本发明实施例提供的测试装置可用来取代人为驱动的测试行为,相对人工测试而言,自动化测试更加节省人力、时间和硬件资源,提高测试效率,例如,本发明实施例提供的测试装置可以基于UI与自绘控件进行第二次交互,从而完成对自绘控件的自动化测试。
在本发明实施例中,测试装置与自绘控件之间通过可通信的方式建立连接关系,当测试装置对自绘控件测试之后,测试装置仍需要对测试后的自绘控件进行校验,测试装置通过与被测试的自绘控件的第二次交互,获取到被测试后的自绘控件的状态信息,由于测试装置与被测试的自绘控件建立有连接关系,测试装置与自绘控件之间可以通过已经规定的信息交互方式获取到自绘控件的状态信息,测试装置可以自定义一些信息的构成,然后在设计自绘控件的过程中进行内置,以便于获取到自绘控件在被测试之后呈现的状态。其中,测试装置从自绘控件获取到的是自绘控件的状态信息,该状态信息是测试装置对自绘控件进行校验所必要的信息,具体获取自绘控件的哪方面状态信息由测试装置需要对自绘控件执行什么样的校验来决定。举例说明,状态信息可以包括:自绘控件被测试之后是否可点击、自绘控件被测试之后是否可见等。通常的,若测试装置设置有测试用例,那么测试用例中会指明需要获取自绘控件的哪方面状态信息。本发明实施例中测试装置通过与自绘控件的第二次交互,测试装置主动的获取到自绘控件的状态信息,从而可以使用状态信息实现对自绘控件的校验,而无需进行位图比对、灰度计算。
需要说明的是,在本发明的一些实施例中,测试装置通过与自绘控件的第二次交互获取自绘控件的状态信息可以通过以下方式实现,具体的,步骤103测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息,包括如下步骤:
C1、测试装置向测试后的自绘控件发送状态查询信息;
C2、测试装置接收自绘控件根据状态查询信息发送的状态信息。
具体的,测试装置在需要对测试后的自绘控件进行校验时,测试装置可以生成状态查询信息,在状态查询信息中携带需要查询自绘控件的哪些方面状态,以向自绘控件指示需要反馈哪些状态。自绘控件被测试之后若接收到测试装置下发的状态查询信息,自绘控件可以通过状态查询信息可以获取到测试装置需要本控件的哪些方面状态,按照状态查询信息的要求,自绘控件可以生成状态信息,该状态信息包括了对应于测试装置查询的信息。然后通过与测试装置的通信路径发送给测试装置。
需要说明的是,测试装置与自绘控件的第二次交互可以通过上述的查询与反馈的方式来实现测试装置对自绘控件的状态信息获取,另外,测试装置还可以采用预置的消息传递机制来获取到自绘控件的状态信息,例如,测试装置与自绘控件之间预先预定一个消息ID,测试装置使用该消息ID传递消息时,自绘控件也使用该消息ID来传递状态信息。这对于测试装置和自绘控件而言,消息设定更简洁,不需要重新自定义消息。
具体的,在本发明的一些实施例中,步骤C1测试装置向测试后的自绘控件发送状态查询信息,可以包括如下步骤:
测试装置通过回调函数的方式向测试后的自绘控件发送状态查询信息。
其中,测试装置可以采用回调函数的方式,回调函数不是由该函数的实现方直接调用,当自绘控件接收到测试装置发送状态查询信息这一特定事件或条件发生时由自绘控件来调用的,自绘控件可以用于对状态查询信息进行响应,由于测试装置不触发状态查询信息自绘控件也就不会响应,故不会导致自绘控件的额外负荷。
104、测试装置根据上述状态信息校验自绘控件。
在本发明实施例中,测试装置对自绘控件进行测试之后,为了对自绘控件进行校验,需要获取到被测试的自绘控件的内容信息,当测试装置对自绘控件执行测试动作之后,自绘控件按照测试装置执行的测试动作之后会呈现一定的状态,测试装置可以通过与自绘控件的第二次交互,可以获取到自绘控件的状态信息。测试装置根据获取到的状态信息对自绘控件进行校验,通过对自绘控件的状态进行判断,从而校验自绘控件是否达到特定要求。由于该状态信息是测试装置对自绘控件进行校验所必要的信息,具体获取自绘控件的哪方面状态信息由测试装置需要对自绘控件执行什么样的校验决定。举例说明,被测的软件是浏览器,浏览器上面的收藏按钮是一个自绘控件,在浏览器上打开一个网页,测试之前,收藏按钮可点击,点击自绘控件后就将浏览器当前显示的页面进行收藏,正常结果有两种:1、收藏按钮变成不可点击,2、网页收藏成功,测试装置在对自绘控件进行测试操作之后,测试装置通过与自绘控件的第二次交互,可以获取到收藏按钮被测试之后的状态信息,测试装置获取到收藏按钮的状态,当对收藏按钮进行校验时就需要判断自绘控件的状态,即判断收藏按钮是不可点击、还是收藏网页是否成功两个方面,从而判断收藏按钮的表现是否符合预期。
在本发明的一些实施例中,步骤104测试装置根据状态信息校验自绘控件,可以包括如下步骤:
D1、测试装置从获取到的测试用例中提取出预期结果;
D2、测试装置将测试后的自绘控件发送的状态信息与预期结果进行比较,以判断自绘控件被测试后的状态是否符合预期。
其中,步骤D1和D2的实现方式是基于测试装置获取到了测试用例,那么按照测试用例中记录的预期结果,将自绘控件被测试后呈现的状态与预期结果进行比较,从而就可以判断自绘控件被测试之后呈现的状态是否符合预期。
通过以上对本发明实施例的说明可知,测试装置首先通过与被测试的自绘控件的第一次交互,获取到自绘控件的内容信息,测试装置根据上述内容信息对自绘控件进行测试操作,在测试操作完成之后,测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息,最后测试装置根据状态信息校验自绘控件。由于测试装置通过与自绘控件的两次交互就可以完成对自绘控件的自动化测试,而无需由人工输入,故测试效率较高,并且即使被测试的自绘控件所在窗口布局有调整时,测试装置通过与自绘控件的第一次交互,可以从内容信息中获取到自绘控件调整后的最新内容,另外测试装置在对自绘控件测试之后通过与自绘控件的第二次交互获取到了自绘控件的状态信息,该状态信息是自绘控件被测试之后呈现的状态,故使用该状态信息校验自绘控件时可以得到精确的校验结果。
以上实施例从测试装置的角度描述了本发明实施例提供的自绘控件的测试方法,接下来从被测试的自绘控件一侧对本发明实施例提供的自绘控件的测试方法进行详细说明,该方法可以包括如下步骤:自绘控件通过与测试自绘控件的测试装置的第一次交互,向测试装置发送自绘控件的内容信息;自绘控件通过与测试装置的第二次交互,向测试装置发送自绘控件的状态信息。
请参阅图2所示,本发明一个实施例提供的自绘控件的测试方法,可以包括如下步骤:
201、自绘控件通过与测试自绘控件的测试装置的第一次交互,向测试装置发送自绘控件的内容信息。
在本发明的一些实施例中,自绘控件通常出现在对话框中或工具栏等窗口上,用户可通过自绘控件输入或操作数据。自绘控件被开发者设计完成之后,通常需要对自绘控件进行测试,以验证开发者设计的自绘控件是否可以满足一些特定的需求。本发明实施例中为了完成对自绘控件的自动化测试,通过测试装置与自绘控件的两次交互,从而就实现对自绘控件的自动化测试,而不需要人工输入信息,本发明实施例提供的测试装置可用来取代人为驱动的测试行为,相对人工测试而言,自动化测试更加节省人力、时间和硬件资源,提高测试效率。
在本发明实施例中,测试装置与自绘控件之间通过可通信的方式建立连接关系,当测试装置需要对自绘控件测试时,自绘控件首先通过与测试该自绘控件的测试装置的第一次交互,向测试装置发送自绘控件的内容信息,由于测试装置与被测试的自绘控件建立有连接关系,自绘控件与测试装置之间可以通过已经规定的信息交互方式发送自绘控件的内容信息,测试装置可以自定义一些信息的构成,然后在设计自绘控件的过程中进行内置,自绘控件通过内置的信息向测试装置发送自绘控件的内容信息。其中,自绘控件向测试装置发送的自绘控件的内容信息是测试装置对自绘控件进行测试操作所必要的信息,具体发送自绘控件的哪方面内容信息由测试装置需要对自绘控件执行什么样的测试操作决定。内容信息,包括以下内容中的至少一种:自绘控件的位置坐标、自绘控件的尺寸、自绘控件的颜色。通常的,自绘控件的位置坐标可以是自绘控件相对于显示屏幕的左上角位置,也可以是自绘控件相对于该自绘控件所在窗口的左上角偏移的位置。本发明实施例中自绘控件通过与测试装置的第一次交互,测试装置可以获取到自绘控件的内容信息,而无需人工记录下所有自绘控件的位置坐标,故即使自绘控件有调整或者承载自绘控件的窗口布局有调整时,由于自绘控件是与测试装置进行交互向测试装置发送自绘控件的内容信息,该内容信息必然表示的是自绘控件的最新内容,而无需人工的重复记录。
需要说明的是,在本发明的一些实施例中,自绘控件通过与测试装置的一次交互向测试装置发送自绘控件的内容信息可以通过以下方式实现,具体的,步骤201、自绘控件通过与测试自绘控件的测试装置的第一次交互,向测试装置发送自绘控件的内容信息,包括如下步骤:
E1、自绘控件接收测试装置发送的内容请求信息,其中,内容请求信息包括:测试装置需要测试的控件ID和与控件ID对应的请求内容;
E2、自绘控件根据内容请求信息向测试装置发送内容信息,其中,内容信息包括:自绘控件中对应于请求内容的信息。
具体的,测试装置在需要对自绘控件进行测试时,测试装置可以生成内容请求信息,在内容请求信息中携带需要测试的控件ID,还可以携带请求获取自绘控件的哪些内容信息,以向自绘控件指示需要反馈哪些内容。其中,控件ID用于区分需要被测试的多个自绘控件,开发者可以给各个自绘控件定义一个控件ID,测试装置在内容请求信息中携带需要测试的控件ID。需要测试的自绘控件接收到测试装置下发的内容请求信息之后,自绘控件可以通过内容请求信息可以获取到测试装置需要本控件的哪些内容,按照内容请求信息的要求,自绘控件可以生成内容信息,该内容信息包括了对应于测试装置请求的信息。然后通过与测试装置的通信路径发送给测试装置。
需要说明的是,自绘控件与测试装置的第一次交互可以通过上述的请求与响应的方式来实现向测试装置发送自绘控件的内容信息,另外,自绘控件还可以采用预置的消息传递机制来传递自绘控件的内容信息,例如,测试装置与自绘控件之间预先预定一个消息ID,测试装置使用该消息ID传递消息时,自绘控件也使用该消息ID来传递内容信息。这对于测试装置和自绘控件而言,消息设定更简洁,不需要重新自定义消息。
具体的,在本发明的一些实施例中,步骤E1自绘控件根据内容请求信息向测试装置发送内容信息,包括如下步骤:
当自绘控件接收到内容请求信息之后,自绘控件调用回调函数向测试装置发送内容信息。
其中,测试装置可以采用回调函数的方式,回调函数不是由该函数的实现方直接调用,当自绘控件接收到测试装置发送内容请求信息这一特定事件或条件发生时由自绘控件来调用的,自绘控件可以用于对内容请求信息进行响应,自绘控件向测试装置发送该自绘控件的内容信息,由于测试装置不触发内容请求信息自绘控件也就不会响应,故不会导致自绘控件的额外负荷。
202、自绘控件通过与测试装置的第二次交互,向测试装置发送自绘控件的状态信息。
在本发明实施例中,测试装置为了对自绘控件进行测试操作,自绘控件通过与测试装置的第一次交互向测试装置发送自绘控件的内容信息,测试装置根据内容信息对自绘控件进行测试操作,自绘控件被测试之后,自绘控件再通过与测试装置的第二次交互,将自己在被测试之后呈现的状态发送给测试装置。其中,状态信息表示了自绘控件被测试之后呈现的状态,测试装置通过对状态信息的判断可以实现对自绘控件的校验,由于本发明实施例中测试装置对自绘控件的校验也是通过测试装置与自绘控件的交互完成,而不需要按照现有技术一样进行位图比对、灰度计算,故可以得到精确的校验结果,自动化测试效率很高。
在本发明的实施例中,为了完成对自绘控件的自动化测试,在测试装置对自绘控件执行测试操作之后,自绘控件仍然需要与测试装置进行第二次交互,从而实现对自绘控件的自动化测试,而不需要人工输入信息,本发明实施例提供的测试装置可用来取代人为驱动的测试行为,相对人工测试而言,自动化测试更加节省人力、时间和硬件资源,提高测试效率,例如,本发明实施例提供的测试装置可以基于UI与自绘控件进行第二次交互,从而完成对自绘控件的自动化测试。
在本发明实施例中,测试装置与自绘控件之间通过可通信的方式建立连接关系,当测试装置对自绘控件测试之后,自绘控件通过与测试装置的第二次交互,向测试装置发送了自绘控件的状态信息,由于测试装置与被测试的自绘控件建立有连接关系,自绘控件与测试装置之间可以通过已经规定的信息交互方式发送自绘控件的状态信息,测试装置可以自定义一些信息的构成,然后在设计自绘控件的过程中进行内置,以便于自绘控件采用内置信息的方式向测试装置发送自绘控件在被测试之后呈现的状态。其中,自绘控件发送的状态信息是测试装置对自绘控件进行校验所必要的信息,具体发送自绘控件的哪方面状态信息由测试装置需要对自绘控件执行什么样的校验来决定。举例说明,状态信息可以包括:自绘控件被测试之后是否可点击、自绘控件被测试之后是否可见等。通常的,若测试装置设置有测试用例,那么测试用例中会指明需要获取自绘控件的哪方面状态信息。本发明实施例中自绘控件通过与测试装置的第二次交互,向测试装置发送了自绘控件的状态信息,从而可以使用状态信息实现对自绘控件的校验,而无需进行位图比对、灰度计算。
需要说明的是,在本发明的一些实施例中,自绘控件通过与测试装置的第二次交互发送自绘控件的状态信息可以通过以下方式实现,具体的,步骤202、自绘控件通过与测试装置的第二次交互,向测试装置发送自绘控件的状态信息,包括如下步骤:
F1、自绘控件接收测试装置发送的状态查询信息;
F2、自绘控件根据状态查询信息向测试装置发送自绘控件被测试后的状态信息。
具体的,测试装置在需要对测试后的自绘控件进行校验时,测试装置可以生成状态查询信息,在状态查询信息中携带需要查询自绘控件的哪些方面状态,以向自绘控件指示需要反馈哪些状态。自绘控件被测试之后若接收到测试装置下发的状态查询信息,自绘控件可以通过状态查询信息可以获取到测试装置需要本控件的哪些方面状态,按照状态查询信息的要求,自绘控件可以生成状态信息,该状态信息包括了对应于测试装置查询的信息。然后通过与测试装置的通信路径发送给测试装置。
需要说明的是,自绘控件与测试装置的第二次交互可以通过上述的查询与反馈的方式来实现向测试装置发送自绘控件的状态信息,另外,自绘控件还可以采用预置的消息传递机制来传递自绘控件的状态信息,例如,测试装置与自绘控件之间预先预定一个消息ID,测试装置使用该消息ID传递消息时,自绘控件也使用该消息ID来传递状态信息。这对于测试装置和自绘控件而言,消息设定更简洁,不需要重新自定义消息。
具体的,在本发明的一些实施例中,步骤F1自绘控件根据状态查询信息向测试装置发送自绘控件被测试后的状态信息,可以包括如下步骤:
当自绘控件接收到状态查询信息之后,自绘控件调用回调函数向测试装置发送自绘控件被测试后的状态信息。
其中,测试装置可以采用回调函数的方式,回调函数不是由该函数的实现方直接调用,当自绘控件接收到测试装置发送状态查询信息这一特定事件或条件发生时由自绘控件来调用的,自绘控件可以用于对状态查询信息进行响应,由于测试装置不触发状态查询信息自绘控件也就不会响应,故不会导致自绘控件的额外负荷。
通过以上对本发明实施例的说明可知,自绘控件首先通过与测试装置的第一次交互,发送自绘控件的内容信息,测试装置根据上述内容信息对自绘控件进行测试操作,在测试操作完成之后,自绘控件通过与测试装置的第二次交互,发送自绘控件的状态信息,最后测试装置根据状态信息校验自绘控件。由于测试装置通过与自绘控件的两次交互就可以完成对自绘控件的自动化测试,而无需由人工输入,故测试效率较高,并且即使被测试的自绘控件所在窗口布局有调整时,测试装置通过与自绘控件的第一次交互,可以从内容信息中获取到自绘控件调整后的最新内容,另外测试装置在对自绘控件测试之后通过与自绘控件的第二次交互获取到了自绘控件的状态信息,该状态信息是自绘控件被测试之后呈现的状态,故使用该状态信息校验自绘控件时可以得到精确的校验结果。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例提供的自绘控件的测试方法采用问答式机制,主要实现方法是:测试装置根据测试用例的要求,主动向被测的自绘控件发送内容请求信息,询问自绘控件的内容信息。被测的自绘软件收到内容请求信息之后,对所请求的内容信息进行查找,查找到内容信息之后返回该信息给测试装置,完成一次交互,测试装置通过获取到的内容信息对自绘控件进行测试动作,然后通过与自绘控件的二次交互,测试装置询问自绘控件的状态信息,自绘控件对所请求的状态信息进行查找,查找到状态信息之后返回该信息给测试装置,完成二次交互,测试装置根据获取到的状态信息对自绘控件进行校验。
接下来以一个具体例子来具体说明测试装置与自绘控件之间的一次信息交互。
测试装置与被测试的自绘控件之间统一设定一个消息ID,使被测的自绘控件能时刻监控该消息ID类型的所有消息,以便将测试装置请求自绘控件信息的消息与其它消息进行区分,双方还要给每个窗口中的每个控件设定一个控件ID,接下来按照测试装置、自绘控件两个执行主体分别进行说明:
首先从测试装置一侧进行描述,测试装置执行测试用例,当需要自绘控件的内容信息时,向被测试的自绘控件所在窗口发送消息来发送获取某控件内容信息的请求。如图3-a所示,为本发明实施例提供的测试装置向被测的自绘控件发送内容请求信息的实现方式示意图。测试装置执行Post Message函数向被测的自绘控件所在窗口发送消息。其中m_hWnd是自绘控件所在的窗口的句柄,它可以由测试装置直接获得。WM_GETOBJECT是测试装置与被测试的自绘控件统一设定的一个消息ID。wParam,iParam这两个参数中存放的要传递给被测试的自绘控件的请求内容,可以包括请求获得信息的控件ID,请求内容等。发送完内容请求信息之后,测试装置开始监控自己窗口接收到的信息。直到收到来自被测自绘控件返回的内容消息。测试装置收到返回的内容消息后,测试装置对内容消息中的内容进行分析,并根据自绘控件的内容信息进行鼠标点击、键盘输入等操作。最后查询的状态信息时,仍需要再做一次与被测试的自绘控件交互,即测试装置与自绘控件的第二次交互,并通过被测的自绘控件返回的状态信息中的状态来校验自绘控件表现是否符合预期,其中第二次交互与第一次交互的实现方式类似,此处不再举例说明。
接下来从自绘控件一侧进行描述,如请参阅如图3-b所示,为本发明实施例提供的自绘控件向测试装置返回内容信息的实现方式示意图。被测的自绘控件时刻监测自己的窗口信息,当得到内容请求信息之后,分析内容请求信息中请求中的控件ID及所请求内容,根据所请求内容把对应自绘控件的内容信息发送给测试装置。被测的自绘控件也通过PostMessage函数向测试装置返回内容消息。其中hWndSrc是测试装置所在窗口的句柄。WM_GETOBJECT是被测试的自绘控件与测试装置之间统一设定的一个消息ID,wParam,iParam这两个参数中存放的要传递给测试装置的请求内容,可以包括请求获得信息的控件ID,请求内容等。
通过以上对本发明实施例的举例说明可知,测试装置与自绘控件通过应答式交互方法获取自绘控件的内容信息和状态信息来实现对自绘控件的自动化测试,通过消息机制传递信息来实现对自绘控件的自动化测试,相比于现有技术自动化测试结果更加准确,避免自绘控件因位置、颜色、形状等外观变化调整而增加的自动化测试工作。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图4-a所示,本发明实施例提供的一种测试装置400,可以包括:第一交互模块401、测试模块402、第二交互模块403、校验模块404,其中,
第一交互模块401,用于通过与被测试的自绘控件的第一次交互,获取到所述自绘控件的内容信息;
测试模块402,用于根据所述内容信息对所述自绘控件进行测试操作;
第二交互模块403,用于通过与测试后的所述自绘控件的第二次交互,获取到所述自绘控件的状态信息;
校验模块404,用于根据所述状态信息校验所述自绘控件。
请参阅如图4-b所示,在本发明的一些实施例中,第一交互模块401,包括:
第一发送子模块4011,用于向被测试的自绘控件发送内容请求信息,所述内容请求信息包括:所述测试装置需要测试的控件身份识别码ID和与所述控件ID对应的请求内容;
第一接收子模块4012,用于接收所述自绘控件根据所述内容请求信息发送的内容信息,所述内容信息包括:所述自绘控件中对应于所述请求内容的信息。
具体的,在本发明的一些实施例中,第一发送子模块4011,具体用于通过回调函数的方式向所述自绘控件发送内容请求信息。
请参阅如图4-c所示,在本发明的一些实施例中,第二交互模块403,包括:
第二发送子模块4031,用于向测试后的所述自绘控件发送状态查询信息;
第二接收子模块4032,用于接收所述自绘控件根据所述状态查询信息发送的状态信息。
具体的,在本发明的一些实施例中,第二发送子模块4031,具体用于通过回调函数的方式向测试后的所述自绘控件发送状态查询信息。
请参阅如图4-d所示,在本发明的一些实施例中,测试模块402,包括:
获取子模块4021,用于获取测试用例;
定位子模块4022,用于根据所述内容信息对所述自绘控件进行定位,得到所述自绘控件在屏幕上出现的位置;
测试子模块4023,用于根据所述测试用例对定位出的所述自绘控件进行测试。
请参阅如图4-e所示,在本发明的一些实施例中,校验模块404,包括:
提取子模块4041,用于从获取到的测试用例中提取出预期结果;
比较子模块4042,用于将测试后的所述自绘控件发送的状态信息与所述预期结果进行比较,以判断所述自绘控件被测试后的状态是否符合预期。
通过以上对本发明实施例的说明可知,测试装置首先通过与被测试的自绘控件的第一次交互,获取到自绘控件的内容信息,测试装置根据上述内容信息对自绘控件进行测试操作,在测试操作完成之后,测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息,最后测试装置根据状态信息校验自绘控件。由于测试装置通过与自绘控件的两次交互就可以完成对自绘控件的自动化测试,而无需由人工输入,故测试效率较高,并且即使被测试的自绘控件所在窗口布局有调整时,测试装置通过与自绘控件的第一次交互,可以从内容信息中获取到自绘控件调整后的最新内容,另外测试装置在对自绘控件测试之后通过与自绘控件的第二次交互获取到了自绘控件的状态信息,该状态信息是自绘控件被测试之后呈现的状态,故使用该状态信息校验自绘控件时可以得到精确的校验结果。
请参阅图5-a所示,本发明实施例提供的一种自绘控件500,可以包括:第一交互模块501、第二交互模块502,其中,
第一交互模块501,用于通过与测试所述自绘控件的测试装置的第一次交互,向所述测试装置发送所述自绘控件的内容信息;
第二交互模块502,用于通过与所述测试装置的第二次交互,向所述测试装置发送所述自绘控件的状态信息。
请参阅如图5-b所示,在本发明的一些实施例中,第一交互模块501,包括:
第一接收子模块5011,用于接收所述测试装置发送的内容请求信息,所述内容请求信息包括:所述测试装置需要测试的控件身份识别码ID和与所述控件ID对应的请求内容;
第一发送子模块5012,用于根据所述内容请求信息向所述测试装置发送内容信息,所述内容信息包括:所述自绘控件中对应于所述请求内容的信息。
具体的,在本发明的一些实施例中,第一发送子模块5012,具体用于当所述第一接收子模块接收到所述内容请求信息之后,调用回调函数向所述测试装置发送内容信息。
请参阅如图5-c所示,在本发明的一些实施例中,第二交互模块502,包括:
第二接收子模块5021,用于接收所述测试装置发送的状态查询信息;
第二发送子模块5022,用于根据所述状态查询信息向所述测试装置发送所述自绘控件被测试后的状态信息。
具体的,在本发明的一些实施例中,第二发送子模块5022,具体用于当所述第二接收子模块接收到所述状态查询信息之后,调用回调函数向所述测试装置发送所述自绘控件被测试后的状态信息。
在本发明的一些实施例中,内容信息,包括以下内容中的至少一种:所述自绘控件的位置坐标、所述自绘控件的尺寸、所述自绘控件的颜色。
通过以上对本发明实施例的说明可知,自绘控件首先通过与测试装置的第一次交互,发送自绘控件的内容信息,测试装置根据上述内容信息对自绘控件进行测试操作,在测试操作完成之后,自绘控件通过与测试装置的第二次交互,发送自绘控件的状态信息,最后测试装置根据状态信息校验自绘控件。由于测试装置通过与自绘控件的两次交互就可以完成对自绘控件的自动化测试,而无需由人工输入,故测试效率较高,并且即使被测试的自绘控件所在窗口布局有调整时,测试装置通过与自绘控件的第一次交互,可以从内容信息中获取到自绘控件调整后的最新内容,另外测试装置在对自绘控件测试之后通过与自绘控件的第二次交互获取到了自绘控件的状态信息,该状态信息是自绘控件被测试之后呈现的状态,故使用该状态信息校验自绘控件时可以得到精确的校验结果。
请参阅图6所示,本发明实施例提供的一种自绘控件的测试系统600,可以包括:如前述图4-a、图4-b、图4-c、图4-d、图4-e中任一项所述的测试装置400和如前述图5-a、图5-b、图5-c中任一项所述的自绘控件500,所述测试装置400和所述自绘控件500之间通过可通信的方式连接。其中测试装置400和自绘控件500的组成结构详见前述实施例中的描述,此处不再赘述。
通过以上对本发明实施例的说明可知,测试装置首先通过与被测试的自绘控件的第一次交互,获取到自绘控件的内容信息,测试装置根据上述内容信息对自绘控件进行测试操作,在测试操作完成之后,测试装置通过与测试后的自绘控件的第二次交互,获取到自绘控件的状态信息,最后测试装置根据状态信息校验自绘控件。由于测试装置通过与自绘控件的两次交互就可以完成对自绘控件的自动化测试,而无需由人工输入,故测试效率较高,并且即使被测试的自绘控件所在窗口布局有调整时,测试装置通过与自绘控件的第一次交互,可以从内容信息中获取到自绘控件调整后的最新内容,另外测试装置在对自绘控件测试之后通过与自绘控件的第二次交互获取到了自绘控件的状态信息,该状态信息是自绘控件被测试之后呈现的状态,故使用该状态信息校验自绘控件时可以得到精确的校验结果。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (27)

1.一种自绘控件的测试方法,其特征在于,包括:
测试装置通过与被测试的自绘控件的第一次交互,基于请求与响应的方式采用预置的消息传递机制获取到所述自绘控件的内容信息;其中,所述预置的消息传递机制包括:测试装置使用预定的消息ID向自绘控件所在窗口发送消息,自绘控件使用所述消息ID向测试装置的窗口返回消息;
所述测试装置根据所述内容信息对所述自绘控件进行测试操作;
所述测试装置通过与测试后的所述自绘控件的第二次交互,基于查询与反馈的方式采用预置的消息传递机制获取到所述自绘控件的状态信息;
所述测试装置根据所述状态信息校验所述自绘控件。
2.根据权利要求1所述的方法,其特征在于,所述测试装置通过与被测试的自绘控件的第一次交互,基于请求与响应的方式采用预置的消息传递机制获取到所述自绘控件的内容信息,包括:
所述测试装置向被测试的自绘控件发送内容请求信息,所述内容请求信息包括:所述测试装置需要测试的控件身份识别码ID和与所述控件ID对应的请求内容;
所述测试装置接收所述自绘控件根据所述内容请求信息发送的内容信息,所述内容信息包括:所述自绘控件中对应于所述请求内容的信息。
3.根据权利要求2所述的方法,其特征在于,所述测试装置向被测试的自绘控件发送内容请求信息,包括:
所述测试装置通过回调函数的方式向所述自绘控件发送内容请求信息。
4.根据权利要求1所述的方法,其特征在于,所述测试装置通过与测试后的所述自绘控件的第二次交互,基于查询与反馈的方式采用预置的消息传递机制获取到所述自绘控件的状态信息,包括:
所述测试装置向测试后的所述自绘控件发送状态查询信息;
所述测试装置接收所述自绘控件根据所述状态查询信息发送的状态信息。
5.根据权利要求4所述的方法,其特征在于,所述测试装置向测试后的所述自绘控件发送状态查询信息,包括:
所述测试装置通过回调函数的方式向测试后的所述自绘控件发送状态查询信息。
6.根据权利要求1所述的方法,其特征在于,所述测试装置根据所述内容信息对所述自绘控件进行测试操作,包括:
所述测试装置获取测试用例;
所述测试装置根据所述内容信息对所述自绘控件进行定位,得到所述自绘控件在屏幕上出现的位置;
所述测试装置根据所述测试用例对定位出的所述自绘控件进行测试。
7.根据权利要求6所述的方法,其特征在于,所述测试装置根据所述状态信息校验所述自绘控件,包括:
所述测试装置从获取到的测试用例中提取出预期结果;
所述测试装置将测试后的所述自绘控件发送的状态信息与所述预期结果进行比较,以判断所述自绘控件被测试后的状态是否符合预期。
8.一种自绘控件的测试方法,其特征在于,包括:
自绘控件通过与测试所述自绘控件的测试装置的第一次交互,基于请求与响应的方式采用预置的消息传递机制向所述测试装置发送所述自绘控件的内容信息;其中,所述预置的消息传递机制包括:测试装置使用预定的消息ID向自绘控件所在窗口发送消息,自绘控件使用所述消息ID向测试装置的窗口返回消息;
所述自绘控件通过与所述测试装置的第二次交互,基于查询与反馈的方式采用预置的消息传递机制向所述测试装置发送所述自绘控件的状态信息。
9.根据权利要求8所述的方法,其特征在于,所述自绘控件通过与测试所述自绘控件的测试装置的第一次交互,基于请求与响应的方式采用预置的消息传递机制向所述测试装置发送所述自绘控件的内容信息,包括:
所述自绘控件接收所述测试装置发送的内容请求信息,所述内容请求信息包括:所述测试装置需要测试的控件身份识别码ID和与所述控件ID对应的请求内容;
所述自绘控件根据所述内容请求信息向所述测试装置发送内容信息,所述内容信息包括:所述自绘控件中对应于所述请求内容的信息。
10.根据权利要求9所述的方法,其特征在于,所述自绘控件根据所述内容请求信息向所述测试装置发送内容信息,包括:
当所述自绘控件接收到所述内容请求信息之后,所述自绘控件调用回调函数向所述测试装置发送内容信息。
11.根据权利要求8所述的方法,其特征在于,所述自绘控件通过与所述测试装置的第二次交互,基于查询与反馈的方式采用预置的消息传递机制向所述测试装置发送所述自绘控件的状态信息,包括:
所述自绘控件接收所述测试装置发送的状态查询信息;
所述自绘控件根据所述状态查询信息向所述测试装置发送所述自绘控件被测试后的状态信息。
12.根据权利要求11所述的方法,其特征在于,所述自绘控件根据所述状态查询信息向所述测试装置发送所述自绘控件被测试后的状态信息,包括:
当所述自绘控件接收到所述状态查询信息之后,所述自绘控件调用回调函数向所述测试装置发送所述自绘控件被测试后的状态信息。
13.根据权利要求8所述的方法,其特征在于,所述内容信息,包括以下内容中的至少一种:所述自绘控件的位置坐标、所述自绘控件的尺寸、所述自绘控件的颜色。
14.一种测试装置,其特征在于,包括:
第一交互模块,用于通过与被测试的自绘控件的第一次交互,基于请求与响应的方式采用预置的消息传递机制获取到所述自绘控件的内容信息;其中,所述预置的消息传递机制包括:测试装置使用预定的消息ID向自绘控件所在窗口发送消息,自绘控件使用所述消息ID向测试装置的窗口返回消息;
测试模块,用于根据所述内容信息对所述自绘控件进行测试操作;
第二交互模块,用于通过与测试后的所述自绘控件的第二次交互,基于查询与反馈的方式采用预置的消息传递机制获取到所述自绘控件的状态信息;
校验模块,用于根据所述状态信息校验所述自绘控件。
15.根据权利要求14所述的装置,其特征在于,所述第一交互模块,包括:
第一发送子模块,用于向被测试的自绘控件发送内容请求信息,所述内容请求信息包括:所述测试装置需要测试的控件身份识别码ID和与所述控件ID对应的请求内容;
第一接收子模块,用于接收所述自绘控件根据所述内容请求信息发送的内容信息,所述内容信息包括:所述自绘控件中对应于所述请求内容的信息。
16.根据权利要求15所述的装置,其特征在于,所述第一发送子模块,具体用于通过回调函数的方式向所述自绘控件发送内容请求信息。
17.根据权利要求14所述的装置,其特征在于,所述第二交互模块,包括:
第二发送子模块,用于向测试后的所述自绘控件发送状态查询信息;
第二接收子模块,用于接收所述自绘控件根据所述状态查询信息发送的状态信息。
18.根据权利要求17所述的装置,其特征在于,所述第二发送子模块,具体用于通过回调函数的方式向测试后的所述自绘控件发送状态查询信息。
19.根据权利要求14所述的装置,其特征在于,所述测试模块,包括:
获取子模块,用于获取测试用例;
定位子模块,用于根据所述内容信息对所述自绘控件进行定位,得到所述自绘控件在屏幕上出现的位置;
测试子模块,用于根据所述测试用例对定位出的所述自绘控件进行测试。
20.根据权利要求19所述的装置,其特征在于,所述校验模块,包括:
提取子模块,用于从获取到的测试用例中提取出预期结果;
比较子模块,用于将测试后的所述自绘控件发送的状态信息与所述预期结果进行比较,以判断所述自绘控件被测试后的状态是否符合预期。
21.一种自绘控件,其特征在于,包括:
第一交互模块,用于通过与测试所述自绘控件的测试装置的第一次交互,基于请求与响应的方式采用预置的消息传递机制向所述测试装置发送所述自绘控件的内容信息;其中,所述预置的消息传递机制包括:测试装置使用预定的消息ID向自绘控件所在窗口发送消息,自绘控件使用所述消息ID向测试装置的窗口返回消息;
第二交互模块,用于通过与所述测试装置的第二次交互,基于查询与反馈的方式采用预置的消息传递机制向所述测试装置发送所述自绘控件的状态信息。
22.根据权利要求21所述的自绘控件,其特征在于,所述第一交互模块,包括:
第一接收子模块,用于接收所述测试装置发送的内容请求信息,所述内容请求信息包括:所述测试装置需要测试的控件身份识别码ID和与所述控件ID对应的请求内容;
第一发送子模块,用于根据所述内容请求信息向所述测试装置发送内容信息,所述内容信息包括:所述自绘控件中对应于所述请求内容的信息。
23.根据权利要求22所述的自绘控件,其特征在于,所述第一发送子模块,具体用于当所述第一接收子模块接收到所述内容请求信息之后,调用回调函数向所述测试装置发送内容信息。
24.根据权利要求21所述的自绘控件,其特征在于,所述第二交互模块,包括:
第二接收子模块,用于接收所述测试装置发送的状态查询信息;
第二发送子模块,用于根据所述状态查询信息向所述测试装置发送所述自绘控件被测试后的状态信息。
25.根据权利要求24所述的自绘控件,其特征在于,所述第二发送子模块,具体用于当所述第二接收子模块接收到所述状态查询信息之后,调用回调函数向所述测试装置发送所述自绘控件被测试后的状态信息。
26.根据权利要求21所述的自绘控件,其特征在于,所述内容信息,包括以下内容中的至少一种:所述自绘控件的位置坐标、所述自绘控件的尺寸、所述自绘控件的颜色。
27.一种自绘控件的测试系统,其特征在于,包括:如权利要求14至20中任一项所述的测试装置和如权利要求21至26中任一项所述的自绘控件,所述测试装置和所述自绘控件之间通过可通信的方式连接。
CN201410201695.XA 2014-05-13 2014-05-13 一种自绘控件的测试方法、测试装置和自绘控件以及系统 Active CN105095064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410201695.XA CN105095064B (zh) 2014-05-13 2014-05-13 一种自绘控件的测试方法、测试装置和自绘控件以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410201695.XA CN105095064B (zh) 2014-05-13 2014-05-13 一种自绘控件的测试方法、测试装置和自绘控件以及系统

Publications (2)

Publication Number Publication Date
CN105095064A CN105095064A (zh) 2015-11-25
CN105095064B true CN105095064B (zh) 2019-03-15

Family

ID=54575560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410201695.XA Active CN105095064B (zh) 2014-05-13 2014-05-13 一种自绘控件的测试方法、测试装置和自绘控件以及系统

Country Status (1)

Country Link
CN (1) CN105095064B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630286A (zh) * 2009-08-07 2010-01-20 金蝶软件(中国)有限公司 一种自动化测试方法及装置
WO2011073759A1 (en) * 2009-12-01 2011-06-23 Cinnober Financial Technology Ab Methods and systems for automatic testing of a graphical user interface
CN102467442A (zh) * 2010-11-02 2012-05-23 腾讯科技(深圳)有限公司 一种软件测试的方法、系统和设备
CN102541728A (zh) * 2010-12-14 2012-07-04 北京新媒传信科技有限公司 扩展自动化测试工具识别控件的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053808B (zh) * 2010-11-30 2012-10-10 Tcl集团股份有限公司 一种打印软件信息的方法、装置及带网口的设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630286A (zh) * 2009-08-07 2010-01-20 金蝶软件(中国)有限公司 一种自动化测试方法及装置
WO2011073759A1 (en) * 2009-12-01 2011-06-23 Cinnober Financial Technology Ab Methods and systems for automatic testing of a graphical user interface
CN102467442A (zh) * 2010-11-02 2012-05-23 腾讯科技(深圳)有限公司 一种软件测试的方法、系统和设备
CN102541728A (zh) * 2010-12-14 2012-07-04 北京新媒传信科技有限公司 扩展自动化测试工具识别控件的方法

Also Published As

Publication number Publication date
CN105095064A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN106484622B (zh) 测试方法、装置及系统
CN106095666B (zh) 游戏自动化测试方法及相关装置
CN105612497B (zh) 所选更新在多个环境中的自动安装
DK3011444T3 (en) METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS
Perrone et al. SAFE: Simulation automation framework for experiments
US10474564B1 (en) Identifying user interface elements using element signatures
CN105612495B (zh) 在计算机系统中安装所选更新之后自动解决冲突
CN110021200A (zh) 教学练考一体化的虚拟现实培训方法、装置及存储介质
CN109408384A (zh) 软件应用的测试方法、装置、处理器及电子装置
CN106302008A (zh) 数据更新方法和装置
PH12018050262A1 (en) Automatic provisioning of a software development environment
CN106055470A (zh) 游戏程序的性能测试方法、装置及系统
CN105612496B (zh) 用于基于存储的生命周期信息来自动推荐更新的方法和系统
CN110275822A (zh) 应用程序接口的性能测试方法、装置、设备及存储介质
CN105183630B (zh) 应用程序测试方法及装置
US20200272558A1 (en) Automated layout testing for mobile device applications
CN103312850A (zh) 一种手机自动化测试系统及工作方法
CN105988931B (zh) 测试方法及装置
CN108763009A (zh) 服务器压力测试方法、系统、设备及计算机可读存储介质
CN111221729B (zh) 一种平台服务与测试服务分离的自动化测试方法及系统
CN110493812A (zh) 配网测试的处理方法、装置、系统、处理器及主控设备
CN105975367A (zh) 移动设备的测试方法和装置
CN110399288A (zh) 应用测试方法和装置、存储介质及电子装置
CN106649638A (zh) 一种大数据获取方法
CN113934630A (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