CN104572431B - 一种测试方法及装置 - Google Patents
一种测试方法及装置 Download PDFInfo
- Publication number
- CN104572431B CN104572431B CN201310507864.8A CN201310507864A CN104572431B CN 104572431 B CN104572431 B CN 104572431B CN 201310507864 A CN201310507864 A CN 201310507864A CN 104572431 B CN104572431 B CN 104572431B
- Authority
- CN
- China
- Prior art keywords
- control
- test
- mark
- attribute information
- tested
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种测试方法及装置,用以解决现有技术中需要频繁的维护测试脚本,测试效率较低的问题。该方法测试装置根据测试脚本中包含的控件的标识,调用该标识对应的控件代理类,并通过调用的该控件代理类获取被测应用中该标识对应的控件的属性信息,根据获取的控件的属性信息对该被测应用进行测试。通过上述方法,测试脚本无需根据被测应用中控件的属性信息进行编写,只需写入要测试的控件的标识,即可通过相应的控件代理类获取该控件的属性信息,即使后续该控件的属性信息发生改变,也可通过控件代理类直接获取到改变后的属性信息,而无需更改或重新编写测试脚本,因此无需对测试脚本进行维护,可有效提高测试的效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种测试方法及装置。
背景技术
随着计算机技术的发展,可以为用户提供各种服务的应用也层出不穷,而为了保证应用的可用性,就需对应用进行测试。
在现有技术中,在对一个应用进行测试时,通常需要根据该应用中的控件的属性信息(如,控件在该应用的界面上所在的位置信息等)编写相应的测试脚本,通过该测试脚本对该应用进行测试。
在采用测试脚本对应用进行测试时,测试脚本根据该应用中控件的属性信息,对该控件执行预设的测试操作,实现对该应用的测试。
例如,假设应用中的控件为按钮,则可针对该按钮的属性信息编写测试脚本,在测试时,测试脚本根据获取的按钮的属性信息,对按钮执行点击操作,以实现对应用中该按钮的测试。
但是,现有技术中测试脚本需要根据被测应用中控件的属性信息进行编写,一旦被测应用中控件的属性信息发生改变,就需要更改甚至重新编写测试脚本,因此,现有技术中的测试方法需要频繁的对测试脚本进行维护,测试效率较低。
发明内容
本申请实施例提供一种测试方法及装置,用以解决现有技术中需要频繁的维护测试脚本,测试效率较低的问题。
本申请实施例提供的一种测试方法,包括:
测试装置运行测试脚本,确定所述测试脚本中包含的控件的标识;并
在预先保存的各控件代理类中,调用确定的所述标识对应的控件代理类,其中,所述标识对应的控件代理类用于获取所述标识对应的控件的属性信息;以及
通过调用的控件代理类获取被测应用中所述标识对应的控件的属性信息;
所述测试装置根据获取的所述控件的属性信息对所述被测应用进行测试。
本申请实施例提供的一种测试装置,包括:
确定模块,用于运行测试脚本,确定所述测试脚本中包含的控件的标识;
调用模块,用于在预先保存的各控件代理类中,调用确定的所述标识对应的控件代理,其中,所述标识对应的控件代理类用于获取所述标识对应的控件的属性信息;
获取模块,用于通过调用的控件代理类获取被测应用中所述标识对应的控件的属性信息;
测试模块,用于根据获取的所述控件的属性信息对所述被测应用进行测试。
本申请实施例提供一种测试方法及装置,该方法测试装置根据测试脚本中包含的控件的标识,调用该标识对应的控件代理类,并通过调用的该控件代理类获取被测应用中该标识对应的控件的属性信息,根据获取的控件的属性信息对该被测应用进行测试。通过上述方法,测试脚本无需根据被测应用中控件的属性信息进行编写,只需写入要测试的控件的标识,即可通过相应的控件代理类获取该控件的属性信息,即使后续该控件的属性信息发生改变,也可通过控件代理类直接获取到改变后的属性信息,而无需更改或重新编写测试脚本,因此无需对测试脚本进行维护,可有效提高测试的效率。
附图说明
图1为本申请实施例提供的测试过程;
图2为本申请实施例提供的包含测试装置的应用的结构示意图;
图3为本申请实施例提供的测试装置结构示意图。
具体实施方式
为了避免测试脚本因被测应用中控件的属性信息的改变而频繁的更改甚至重写,以提高测试效率,本申请实施例中测试脚本中只写入要测试的控件的标识,测试装置即可通过调用该标识对应的控件代理类获取该控件的属性信息,并根据获取的控件的属性信息对被测空间进行测试。
下面结合说明书附图,对本申请实施例进行详细描述。
图1为本申请实施例提供的测试过程,具体包括以下步骤:
S101:测试装置运行测试脚本,确定该测试脚本中包含的控件的标识。
在本申请实施例中,测试脚本并不需要根据被测应用中控件的属性信息进行编写,只要编写被测应用中需要进行测试的控件的标识以及测试操作信息即可。测试装置则可运行编写好的测试脚本,并确定该测试脚本中包含的控件的标识。
具体的,在编写测试脚本时,可采用javascript进行编写,也即该测试脚本可以是javascript脚本。相应的,当测试脚本是javascript脚本时,需要在测试装置中内置浏览器内核,如autoplatform.dll,测试装置在运行测试脚本时,则可通过浏览器内核运行该测试脚本。
S102:在预先保存的各控件代理类中,调用确定的该标识对应的控件代理类。
S103:通过调用的控件代理类获取被测应用中该标识对应的控件的属性信息。
在本申请实施例中,控件代理类是获取控件的属性信息的获取方法。一个标识对应的控件代理类相当于指向该标识对应的控件的属性信息的指针,用于获取该标识对应的控件的属性信息。可预先针对被测应用中的每个控件设置相应的控件代理类,其中,针对一个控件设置的控件代理类的标识与该控件的标识相同,并将设置的各控件代理类保存在测试装置中。
需要说明的是,本申请实施例中设置的控件代理类是测试装置可访问的代理类,如,当采用javascript编写测试脚本时,设置的控件代理类则是javascript可访问的代理类。
测试装置通过上述步骤S101运行测试脚本,并确定了测试脚本中包含的控件的标识后,则可在预先保存的各控件代理类中调用该标识对应的控件代理类,并通过调用的控件代理类获取被测应用中该标识对应的控件的属性信息。
S104:测试装置根据获取的控件的属性信息对该被测应用进行测试。
测试装置获取到被测应用中控件的属性信息后,则可根据获取到的控件的属性信息对被测应用进行测试。具体的,测试装置可确定测试脚本中包含的测试操作信息,并根据获取的控件的属性信息,对该控件执行该测试操作信息对应的操作。其中,本申请实施例中所述的测试操作包括但不限于点击操作、移动操作、设置操作。
例如,通过javascript编写如下测试脚本:
上述测试脚本的功能是对被测应用中标识为“SYSTEMSETTING”的按钮控件进行测试,测试操作信息为“click”,也即测试操作信息对应的操作为点击操作,则测试装置通过浏览器内核(如autoplatform.dll)运行上述测试脚本,确定其中包含的控件的标识为“SYSTEMSETTING”,因此调用标识同样为“SYSTEMSETTING”的控件代理类,并通过该标识为“SYSTEMSETTING”的控件代理类获取标识为“SYSTEMSETTING”的按钮控件的属性信息,并根据获取到的属性信息对标识为“SYSTEMSETTING”的按钮执行点击操作。
可见,通过上述方法,测试脚本并不需要根据控件的属性信息进行编写,只要编写要测试的控件的标识,即可通过相应的控件代理类获取该控件的属性信息,由于控件代理类是获取相应控件的属性信息的获取方法,相当于指向相应控件的指针,因此,即使后续控件的属性信息发生变化,也可通过控件代理类直接获取到改变后的属性信息,而无需更改或重新编写测试脚本,因此无需对测试脚本进行维护,可有效提高测试的效率。
进一步的,在本申请实施例中,该测试装置可内置于被测应用中,包含该测试装置的被测应用的结构可以如图2所示。
图2为本申请实施例提供的包含测试装置的应用的结构示意图,在图2中,应用中包括测试装置、业务应用模块和数据支撑模块。
测试装置用于运行测试脚本,根据该测试脚本对该应用进行测试,保存各控件代理类,保存并输出测试结果。
业务应用模块用于向用户提供业务服务。
数据支撑模块用于保存控件的属性信息,其中,该数据支撑模块可以是图形用户界面(Graphicl User Interface)库,该GUI库中保存了应用中所有控件的属性信息。
当测试脚本是javascript脚本时,测试装置可通过浏览器内核运行该测试脚本,并通过调用的控件代理类获取数据支撑模块中保存的控件的属性信息。
另外,当采用javascript编写测试脚本时,测试装置还可通过浏览器内核向用户提供编写javascript脚本的页面,如,通过浏览器内核加载autoplatform.html,用户可在该页面中编写测试脚本。
以上为本申请实施例提供的测试方法,基于同样的思路,本申请实施例还提供一种测试装置,如图3所示。
图3为本申请实施例提供的测试装置结构示意图,具体包括:
确定模块301,用于运行测试脚本,确定所述测试脚本中包含的控件的标识;
调用模块302,用于在预先保存的各控件代理类中,调用确定的所述标识对应的控件代理,其中,所述标识对应的控件代理类用于获取所述标识对应的控件的属性信息;
获取模块303,用于通过调用的控件代理类获取被测应用中所述标识对应的控件的属性信息;
测试模块304,用于根据获取的所述控件的属性信息对所述被测应用进行测试。
所述测试脚本为javascript脚本;
所述确定模块301具体用于,通过浏览器内核运行所述测试脚本,确定所述测试脚本中包含的控件的标识。
所述测试模块304具体用于,确定所述测试脚本中包含的测试操作信息,根据获取的所述控件的属性信息,对所述控件执行确定的所述测试操作信息对应的操作。
所述装置还包括:
保存输出模块305,用于保存并输出对所述被测应用进行测试的测试结果。
本申请实施例提供一种测试方法及装置,该方法测试装置根据测试脚本中包含的控件的标识,调用该标识对应的控件代理类,并通过调用的该控件代理类获取被测应用中该标识对应的控件的属性信息,根据获取的控件的属性信息对该被测应用进行测试。通过上述方法,测试脚本无需根据被测应用中控件的属性信息进行编写,只需写入要测试的控件的标识,即可通过相应的控件代理类获取该控件的属性信息,即使后续该控件的属性信息发生改变,也可通过控件代理类直接获取到改变后的属性信息,而无需更改或重新编写测试脚本,因此无需对测试脚本进行维护,可有效提高测试的效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种测试方法,其特征在于,包括:
测试装置运行测试脚本,确定所述测试脚本中包含的控件的标识,其中,所述测试脚本中并不包含控件的属性信息;并
在预先保存的各控件代理类中,调用确定的所述标识对应的控件代理类,其中,所述标识对应的控件代理类用于获取所述标识对应的控件的属性信息;以及
通过调用的控件代理类获取被测应用中所述标识对应的控件的属性信息;
所述测试装置根据获取的所述控件的属性信息对所述被测应用进行测试。
2.如权利要求1所述的方法,其特征在于,所述测试脚本为javascript脚本;
测试装置运行测试脚本,具体包括:
所述测试装置通过浏览器内核运行所述测试脚本。
3.如权利要求1所述的方法,其特征在于,所述测试装置根据获取的所述控件的属性信息对所述被测应用进行测试,具体包括:
所述测试装置确定所述测试脚本中包含的测试操作信息;并
根据获取的所述控件的属性信息,对所述控件执行确定的所述测试操作信息对应的操作。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述测试装置保存并输出对所述被测应用进行测试的测试结果。
5.如权利要求1所述的方法,其特征在于,所述测试装置内置于所述被测应用中。
6.一种测试装置,其特征在于,包括:
确定模块,用于运行测试脚本,确定所述测试脚本中包含的控件的标识,其中,所述测试脚本中并不包含控件的属性信息;
调用模块,用于在预先保存的各控件代理类中,调用确定的所述标识对应的控件代理,其中,所述标识对应的控件代理类用于获取所述标识对应的控件的属性信息;
获取模块,用于通过调用的控件代理类获取被测应用中所述标识对应的控件的属性信息;
测试模块,用于根据获取的所述控件的属性信息对所述被测应用进行测试。
7.如权利要求6所述的装置,其特征在于,所述测试脚本为javascript脚本;
所述确定模块具体用于,通过浏览器内核运行所述测试脚本,确定所述测试脚本中包含的控件的标识。
8.如权利要求6所述的装置,其特征在于,所述测试模块具体用于,确定所述测试脚本中包含的测试操作信息,根据获取的所述控件的属性信息,对所述控件执行确定的所述测试操作信息对应的操作。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
保存输出模块,用于保存并输出对所述被测应用进行测试的测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310507864.8A CN104572431B (zh) | 2013-10-24 | 2013-10-24 | 一种测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310507864.8A CN104572431B (zh) | 2013-10-24 | 2013-10-24 | 一种测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572431A CN104572431A (zh) | 2015-04-29 |
CN104572431B true CN104572431B (zh) | 2017-07-21 |
Family
ID=53088565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310507864.8A Active CN104572431B (zh) | 2013-10-24 | 2013-10-24 | 一种测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572431B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107102938B (zh) * | 2016-02-19 | 2020-11-17 | 创新先进技术有限公司 | 测试脚本的更新方法及装置 |
CN106383780A (zh) * | 2016-09-05 | 2017-02-08 | 努比亚技术有限公司 | 一种Monkey测试方法及装置 |
CN108415826B (zh) * | 2018-01-12 | 2021-10-29 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN108255722B (zh) * | 2018-01-15 | 2021-01-29 | 厦门美图移动科技有限公司 | 脚本生成方法、脚本生成装置及服务器 |
CN110413502A (zh) * | 2018-04-28 | 2019-11-05 | 北京京东尚科信息技术有限公司 | 程序测试方法及***、计算机***和计算机可读存储介质 |
CN110554967B (zh) * | 2019-09-10 | 2023-09-08 | 浙江中控技术股份有限公司 | 一种非标准控件的测试方法及装置 |
CN112148588B (zh) * | 2020-08-21 | 2022-04-19 | 烽火通信科技股份有限公司 | 一种自动化测试的对象资源的自动分析方法及测试工具 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630286A (zh) * | 2009-08-07 | 2010-01-20 | 金蝶软件(中国)有限公司 | 一种自动化测试方法及装置 |
CN102541728A (zh) * | 2010-12-14 | 2012-07-04 | 北京新媒传信科技有限公司 | 扩展自动化测试工具识别控件的方法 |
CN103186460A (zh) * | 2011-12-30 | 2013-07-03 | 金蝶软件(中国)有限公司 | 一种生成测试用例脚本的方法、装置及*** |
CN103309797A (zh) * | 2012-03-09 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 用户界面自动化测试方法及装置 |
-
2013
- 2013-10-24 CN CN201310507864.8A patent/CN104572431B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630286A (zh) * | 2009-08-07 | 2010-01-20 | 金蝶软件(中国)有限公司 | 一种自动化测试方法及装置 |
CN102541728A (zh) * | 2010-12-14 | 2012-07-04 | 北京新媒传信科技有限公司 | 扩展自动化测试工具识别控件的方法 |
CN103186460A (zh) * | 2011-12-30 | 2013-07-03 | 金蝶软件(中国)有限公司 | 一种生成测试用例脚本的方法、装置及*** |
CN103309797A (zh) * | 2012-03-09 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 用户界面自动化测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104572431A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572431B (zh) | 一种测试方法及装置 | |
US20220318945A1 (en) | Optimizing compilation of shaders | |
CN107229454B (zh) | 混合视图的显示方法及装置 | |
US9507480B1 (en) | Interface optimization application | |
US9715440B2 (en) | Test scope determination based on code change(s) | |
KR20200037602A (ko) | 인공 신경망 선택 장치 및 방법 | |
CN108388515A (zh) | 测试数据生成方法、装置、设备以及计算机可读存储介质 | |
US10803166B1 (en) | Automated determination of application privileges | |
CN104035863A (zh) | 一种浏览器测试方法及装置 | |
CN113516247A (zh) | 参数校准方法、量子芯片的控制方法、装置及*** | |
CN108228181A (zh) | 在html页面中嵌入html页面的方法及装置 | |
CN107016282A (zh) | 一种信息处理方法及装置 | |
CN108388509A (zh) | 一种软件测试方法、计算机可读存储介质及终端设备 | |
CN106649061A (zh) | 一种记录用户在web***中的操作日志的方法与设备 | |
CN107943465A (zh) | 一种生成html表单的方法及装置 | |
CN109857964B (zh) | 一种页面操作的热力图绘制方法、装置、存储介质及处理器 | |
US20170199912A1 (en) | Behavior topic grids | |
CN109600272A (zh) | 爬虫检测的方法及装置 | |
CN108874379B (zh) | 页面的处理方法及装置 | |
CN110018812A (zh) | 一种图形绘制方法和装置 | |
CN104461310B (zh) | 一种页面比对方法及*** | |
CN109558548A (zh) | 一种消除css样式冗余的方法及相关产品 | |
CN110020074A (zh) | 确定网页流失率的方法及装置 | |
CN109857662B (zh) | 用例数据处理方法、装置、计算机设备和存储介质 | |
US9146720B1 (en) | Binary file application processing |
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 |