CN108763087A - 一种脚本测试方法、装置及系统 - Google Patents
一种脚本测试方法、装置及系统 Download PDFInfo
- Publication number
- CN108763087A CN108763087A CN201810548165.0A CN201810548165A CN108763087A CN 108763087 A CN108763087 A CN 108763087A CN 201810548165 A CN201810548165 A CN 201810548165A CN 108763087 A CN108763087 A CN 108763087A
- Authority
- CN
- China
- Prior art keywords
- script
- test
- scene
- triggering
- result
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种脚本测试方法、装置及设备。该方法包括:获取测试脚本,检测出该测试脚本对应的脚本情景;基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系;根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。本发明解决了传统自动化测试方法中由于脚本情景与触发情景不同,而导致的无法准确测试的缺陷,同时避免了执行脚本动作的执行结果与期望结果不一致时,会导致后面的脚本动作执行时产生的错误。
Description
【技术领域】
本发明涉及计算机处理技术领域,尤其涉及一种脚本测试方法、装置及系统。
【背景技术】
脚本(Script)是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等,脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。
在脚本测试的过程中(即回放测试脚本的过程中),一般采用的是顺序执行,这便难以避免出现一些问题,如脚本的执行结果与实际上的期望结果存在差异时导致的后续脚本动作的执行会出现错误,进而连带性的使得整个测试脚本的测试失败;又或者是在脚本测试的过程中测试脚本对应的脚本情景(即回放情景)与预先定义的触发情景(即录制情景)不同时,而导致测试结果的不准确。
【发明内容】
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明提供一种脚本测试方法,包括:
获取测试脚本,检测出该测试脚本对应的脚本情景;
基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系;
根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
具体的,所述获取测试脚本,检测出该测试脚本对应的脚本情景,包括以下前置步骤:
初始化测试系统,加载测试脚本;
将所述测试脚本对应的测试结果标记为未测试。
具体的,所述获取测试脚本,检测出该测试脚本对应的脚本情景,包括:
判断所述测试脚本对应的执行时间是否大于预设的测试时间;
若是,则输出结果至测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
具体的,所述基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系,包括:
根据所述测试脚本确认其对应预设的触发情景;
判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配;
若是,则确定所述测试脚本为触发脚本,以执行所述触发脚本对应的脚本动作;
若否,则返回判断所述执行时间是否大于所述预设的测试时间。
具体的,所述确定所述测试脚本为触发脚本,包括:
获取所述脚本情景与触发情景之间互为匹配的结果,将所述脚本情景对应的测试脚本确定为触发脚本。
具体的,所述根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果,包括:
检测出执行完所述脚本动作后生成的所述触发脚本对应的执行结果;
判断所述执行结果与所述触发脚本对应的期望结果是否匹配;
若是,则将所述执行结果标记为测试成功,并记录为所述测试脚本对应的测试结果;
若否,则将所述执行结果标记为测试失败,并记录为所述测试脚本对应的测试结果。
可选的,所述根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果,还包括:
将所述测试结果记录至所述触发脚本中,并停止执行该触发脚本对应的脚本动作,以根据所述触发脚本生成测试报告信息。
具体的,所述根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果,还包括:
获取所述测试结果对应的执行时间;
判断所述执行时间是否大于预设的测试时间;
若是,则输出结果至所述测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
相应的,本发明还提供一种脚本测试装置,包括:
检测模块:用于获取测试脚本,检测出该测试脚本对应的脚本情景;
确认模块:用于基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系;
执行模块:用于根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
相应的,本发明还提供一种脚本测试系统,包括:
主机和脚本测试装置;
所述主机和/或脚本测试装置用于执行上述所述脚本测试方法。
与现有技术相比,本发明具备如下优点:
综上所述,本发明提供了一种基于情景驱动式的脚本测试方法、装置及系统,其中测试脚本被加载到测试装置中,测试装置可以根据不同的脚本情景执行相应的测试脚本,解决了传统自动化测试方法中由于脚本情景与触发情景不同,而导致的无法准确测试的缺陷。
本发明的方法中当检测到的脚本情景与测试脚本预定义的触发情景匹配时,将自动触发执行测试脚本里定义的脚本动作,执行完脚本动作,将检测其执行结果,如果在一定时间内检测到与相应的期望结果相匹配的执行结果,则认为测试通过,否则测试失败。避免了传统测试方法中执行脚本动作的执行结果与期望结果不一致时,会导致后面的脚本动作执行时产生的错误。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实施例了解到。
【附图说明】
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明中一种脚本测试方法的第一实施例流程图;
图2为本发明中一种脚本测试方法的第二实施例流程图;
图3为本发明中一种脚本测试装置的第一实施例结构框图;
图4为本发明中一种脚本测试装置的第二实施例结构框图;
图5为本发明中所述测试脚本的形成流程图;
图6为本发明中以测试数据表为存储形式的测试报告信息;
图7为本发明中一种脚本测试系统的一实施例结构框图。
【具体实施方式】
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明作进一步的详细说明。以下实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
请参阅附图1所示的第一实施例的流程图,本发明提供一种脚本测试方法,包括:
本发明提供一种脚本测试方法,包括:
S101,获取测试脚本,检测出该测试脚本对应的脚本情景。
本发明实施例中,步骤S101,包括以下前置步骤:
初始化测试系统,加载测试脚本;
将所述测试脚本对应的测试结果标记为未测试。
本发明实施例中,所述获取测试脚本,检测出该测试脚本对应的脚本情景,包括:
判断所述测试脚本对应的执行时间是否大于预设的测试时间;
若是,则输出结果至测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,如图5所示,所述测试脚本的设置过程包括:
1000,开始;
2000,预设触发情景;
3000,预设脚本动作;
4000,预设期望结果;
5000,结束。
其中,本发明实施例中,所述触发情景包括如下任意一项或多项:看到某图像、看到某段字符、听到某段音频、检测到虚拟情景后触发的等;其中所述虚拟情景可由其他测试脚本在脚本动作时生成,可以实现测试脚本之间的相互触发。
本发明实施例中,所述脚本动作指的是执行计算机的系统命令以及本系统定义的命令,包括模拟用户点击触摸屏、模拟用户按机器的按键、模拟用户向机器发送语音操作指令、模拟用户听机器喇叭输出的声音、创建虚拟情景等。
本发明实施例中,所述期望结果是看到某图像、看到某段字符、听到某段音频,或者这三种元素的逻辑组合(与、或、非),当系统检测到由这三个元素组成的逻辑表达式成立时,则认为测试通过。
例如,预先定义一个APP的使用界面,包括有虚拟控件:播放音乐,则定义模拟用户的使用动作即脚本动作为点击该虚拟控件,后定义所需的按键后的界面显示以及播放的音乐。
本发明实施例中,所述测试脚本在设置的过程中,还包括以下步骤:
从预置测试数据中获取针对该测试过程预先定义的测试时间;
分析出当前测试脚本的执行时间,并将所述执行时间与测试时间进行比较;
通过相应的比较结果调用对应的响应指令,所述响应指令包括以下任意一项:输出结果至测试报告信息中、检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,所述分析出当前测试脚本的执行时间,并将所述执行时间与测试时间进行比较,包括以下步骤:
获取所有测试脚本测试完毕的结束指令;
根据所述结束指令,获取其对应的执行时间W;
确定预先定义的所有测试脚本测试完毕的测试时间为T;
判断是否满足条件W>T,根据判断结果进行下一步进程,包括如下任意一项:输出结果至测试报告信息中、检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,所述测试脚本加载入测试装置后,触发标记指令,响应于该标记指令将测试脚本标记为未测试,以根据该未测试的标记信息判断筛选出已测试完毕的测试脚本。
S102,基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系。
具体的,步骤S102,包括:
根据所述测试脚本确认其对应预设的触发情景;
判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配;
若是,则确定所述测试脚本为触发脚本,以执行所述触发脚本对应的脚本动作;
若否,则返回判断所述执行时间是否大于所述预设的测试时间。
具体的,本发明实施例中,所述确定所述测试脚本为触发脚本,包括:
获取所述脚本情景与触发情景之间互为匹配的结果,将所述脚本情景对应的测试脚本确定为触发脚本。
本发明实施例中,所述触发情景与脚本情景存在区别,其中所述触发情景指的是根据当前处于测试阶段的测试脚本检测出的对应情景;而脚本情景为根据所述测试脚本预先设置的情景。所述情景表示看到某图像、看到某段字符、听到某段音频、检测到虚拟情景后触发的等。
本发明实施例中,所述确认该脚本情景与预设的触发情景之间的匹配关系,包括以下实现方式:
依据所述测试脚本分别获取所述脚本情景和触发情景的第一情景对象和第二情景对象,所述第一情景对象或第二情景对象包括图像、字符、音频、虚拟情景等;
根据所述第一情景对象和第二情景对象,分别调用其相应的第一对象特征信息和第二对象特征信息;
比对所述第一对象特征信息和第二对象特征信息,得出两者的差异值;
当所述差异值满足一定的阈值时,则确认所述脚本情景和触发情景两者互为匹配,否则不匹配。
S103,根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
具体的,本发明实施例中,步骤S103,包括:
检测出执行完所述脚本动作后生成的所述触发脚本对应的执行结果;
判断所述执行结果与所述触发脚本对应的期望结果是否匹配;
若是,则将所述执行结果标记为测试成功,并记录为所述测试脚本对应的测试结果;
若否,则将所述执行结果标记为测试失败,并记录为所述测试脚本对应的测试结果。
可选的,本发明实施例中,步骤S103,还包括:
将所述测试结果记录至所述触发脚本中,并停止执行该触发脚本对应的脚本动作,以根据所述触发脚本生成测试报告信息。
具体的,本发明实施例中,步骤S103,还包括:
获取所述测试结果对应的执行时间;
判断所述执行时间是否大于预设的测试时间;
若是,则输出结果至所述测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,所述测试脚本的运作流程如下:当脚本测试装置检测到的情景与脚本预定义的触发情景匹配时,脚本测试装置就自动触发测试脚本里脚本动作定义的动作,执行完这些动作后,脚本测试装置开始检测执行结果,如果在一定时间内检测到相应的期望结果,则认为测试通过,否则测试失败。
本发明实施例中,所述执行结果与期望结果存在差异性,具体为:所述执行结果为当前处于测试过程中执行完所述测试脚本后所得到的结果;而所述期望结果为所述测试脚本在进入测试阶段之前预先定义的结果;其中所述结果均包括如下任意一项或多项:看到某图像、看到某段字符、听到某段音频,或者这三种元素的逻辑组合(与、或、非)。
请参阅附图2所示的第二实施例的流程图,本发明提供一种脚本测试方法,包括:
S201,初始化测试系统,加载测试脚本;将所述测试脚本对应的测试结果标记为未测试。
本发明实施例中,所述测试脚本加载入测试装置后,触发标记指令,响应于该标记指令将测试脚本标记为未测试,以根据该未测试的标记信息判断筛选出已测试完毕的测试脚本。
S202,判断所述测试脚本对应的执行时间是否大于预设的测试时间;
若是,则执行步骤S206;
若否,则执行步骤S203。
本发明实施例中,所述分析出当前测试脚本的执行时间,并将所述执行时间与测试时间进行比较,包括以下步骤:
获取所有测试脚本测试完毕的结束指令;
根据所述结束指令,获取其对应的执行时间W;
确定预先定义的所有测试脚本测试完毕的测试时间为T;
判断是否满足条件W>T,根据判断结果进行下一步进程,包括如下任意一项:输出结果至测试报告信息中、检测所述脚本情景与所述触发情景之间的匹配关系。
S203,根据所述测试脚本确认其对应预设的触发情景;判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配;
若是,则执行步骤S204;
若否,则执行步骤S202。
本发明实施例中,所述触发情景与脚本情景存在区别,其中所述触发情景指的是根据当前处于测试阶段的测试脚本检测出的对应情景;而脚本情景为根据所述测试脚本预先设置的情景。所述情景表示看到某图像、看到某段字符、听到某段音频、检测到虚拟情景后触发的等。
本发明实施例中,所述判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配,包括以下实现方式:
依据所述测试脚本分别获取所述脚本情景和触发情景的第一情景对象和第二情景对象,所述第一情景对象或第二情景对象包括图像、字符、音频、虚拟情景等;
根据所述第一情景对象和第二情景对象,分别调用其相应的第一对象特征信息和第二对象特征信息;
比对所述第一对象特征信息和第二对象特征信息,得出两者的差异值;
当所述差异值满足一定的阈值时,则确认所述脚本情景和触发情景两者互为匹配,否则不匹配。
S204,获取所述脚本情景与触发情景之间互为匹配的结果,将所述脚本情景对应的测试脚本确定为触发脚本。
S205,检测出执行完所述脚本动作后生成的所述触发脚本对应的执行结果;判断所述执行结果与所述触发脚本对应的期望结果是否匹配;
若是,则输出测试成功的结果,并执行步骤S206;
若否,则输出测试失败的结果,并执行步骤S206。
本发明实施例中,所述执行结果与期望结果存在差异性,具体为:所述执行结果为当前处于测试过程中执行完所述测试脚本后所得到的结果;而所述期望结果为所述测试脚本在进入测试阶段之前预先定义的结果;其中所述结果均包括如下任意一项或多项:看到某图像、看到某段字符、听到某段音频,或者这三种元素的逻辑组合(与、或、非)。
S206,记录测试结果。
本发明实施例中,步骤S206包括步骤:
接收经由步骤S205后输出的测试结果并进行记录,如记录的测试结果包括如下任意一项:测试成功、测试失败、其他等。
优选的,本发明实施例中,步骤S206还包括步骤:
获取所述测试结果对应的执行时间;
判断所述执行时间是否大于预设的测试时间;
若是,则输出结果至所述测试报告信息中,即执行步骤207;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系,即执行步骤203。
需要说明的是,当记录完测试结果后,可选的跳转至步骤202,后经由步骤202中的测试脚本的执行时间与预设的测试时间之间的比较选择输出测试结果至测试报告信息中或进一步执行步骤203。
S207,输出结果至测试报告信息中。
本发明实施例中,所述步骤S207还包括:
将所述测试结果记录至所述触发脚本中,并停止执行该触发脚本对应的脚本动作,以根据所述触发脚本生成测试报告信息。
本发明实施例中,所述生成测试报告信息包括如下实现方式:
获取所述测试结果,并根据所述测试结果对所述测试脚本进行标签,通过该标签获取对应的脚本信息。
如图6所示,本发明实施例中以测试数据表为存储形式的测试报告信息,其中每一测试脚本均标签有对应的脚本编号,以便于识别测试脚本。在该测试报告信息生成的测试数据表中,存储的脚本信息包括有以下任意一种或多种:预设触发情景、预设的脚本动作、预设期望结果、预设测试时间、实际脚本情景、实际执行动作、实际执行结果、实际执行时间以及测试结果等。
本发明实施例中,所述测试报告信息的存储形式或显示方式包括有如下任意一种:表格、弹窗、数据界面、源代码、浮窗等。
请参阅附图3所示的第一实施例结构框图,本发明还提供一种脚本测试装置,包括:
检测模块11:用于获取测试脚本,检测出该测试脚本对应的脚本情景。
具体的,所述检测模块11,包括以下前置单元:
加载单元:用于初始化测试系统,加载测试脚本;
标记单元:用于将所述测试脚本对应的测试结果标记为未测试。
具体的,所述检测模块11,包括用于执行以下步骤:
判断所述测试脚本对应的执行时间是否大于预设的测试时间;
若是,则输出结果至测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
其中,本发明实施例中,所述触发情景包括如下任意一项或多项:看到某图像、看到某段字符、听到某段音频、检测到虚拟情景后触发的等;其中所述虚拟情景可由其他测试脚本在脚本动作时生成,可以实现测试脚本之间的相互触发。
本发明实施例中,所述脚本动作指的是执行计算机的系统命令以及本系统定义的命令,包括模拟用户点击触摸屏、模拟用户按机器的按键、模拟用户向机器发送语音操作指令、模拟用户听机器喇叭输出的声音、创建虚拟情景等。
本发明实施例中,所述期望结果是看到某图像、看到某段字符、听到某段音频,或者这三种元素的逻辑组合(与、或、非),当系统检测到由这三个元素组成的逻辑表达式成立时,则认为测试通过。
例如,预先定义一个APP的使用界面,包括有虚拟控件:播放音乐,则定义模拟用户的使用动作即脚本动作为点击该虚拟控件,后定义所需的按键后的界面显示以及播放的音乐。
本发明实施例中,所述测试脚本在设置的过程中包括以下实现方式:从预置测试数据中获取针对该测试过程预先定义的测试时间;分析出当前测试脚本的执行时间,并将所述执行时间与测试时间进行比较;通过相应的比较结果调用对应的响应指令,所述响应指令包括以下任意一项:输出结果至测试报告信息中、检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,所述分析出当前测试脚本的执行时间,并将所述执行时间与测试时间进行比较,包括以下实现方式:获取所有测试脚本测试完毕的结束指令;根据所述结束指令,获取其对应的执行时间W;确定预先定义的所有测试脚本测试完毕的测试时间为T;判断是否满足条件W>T,根据判断结果进行下一步进程,包括如下任意一项:输出结果至测试报告信息中、检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,所述测试脚本加载入测试装置后,触发标记指令,响应于该标记指令将测试脚本标记为未测试,以根据该未测试的标记信息判断筛选出已测试完毕的测试脚本。
确认模块12:用于基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系。
具体的,所述确认模块12,包括用于执行以下步骤:
根据所述测试脚本确认其对应预设的触发情景;
判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配;
若是,则确定所述测试脚本为触发脚本,以执行所述触发脚本对应的脚本动作;
若否,则返回判断所述执行时间是否大于所述预设的测试时间。
本发明实施例中,所述确定所述测试脚本为触发脚本,包括:
获取所述脚本情景与触发情景之间互为匹配的结果,将所述脚本情景对应的测试脚本确定为触发脚本。
本发明实施例中,所述触发情景与脚本情景存在区别,其中所述触发情景指的是根据当前处于测试阶段的测试脚本检测出的对应情景;而脚本情景为根据所述测试脚本预先设置的情景。所述情景表示看到某图像、看到某段字符、听到某段音频、检测到虚拟情景后触发的等。
本发明实施例中,所述确认模块12还用于执行以下步骤:
依据所述测试脚本分别获取所述脚本情景和触发情景的第一情景对象和第二情景对象,所述第一情景对象或第二情景对象包括图像、字符、音频、虚拟情景等;根据所述第一情景对象和第二情景对象,分别调用其相应的第一对象特征信息和第二对象特征信息;比对所述第一对象特征信息和第二对象特征信息,得出两者的差异值;当所述差异值满足一定的阈值时,则确认所述脚本情景和触发情景两者互为匹配,否则不匹配。
执行模块13:用于根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
具体的,所述执行模块13,包括用于执行以下步骤:
检测出执行完所述脚本动作后生成的所述触发脚本对应的执行结果;
判断所述执行结果与所述触发脚本对应的期望结果是否匹配;
若是,则将所述执行结果标记为测试成功,并记录为所述测试脚本对应的测试结果;
若否,则将所述执行结果标记为测试失败,并记录为所述测试脚本对应的测试结果。
可选的,所述执行模块13,还包括用于执行以下步骤:
将所述测试结果记录至所述触发脚本中,并停止执行该触发脚本对应的脚本动作,以根据所述触发脚本生成测试报告信息。
本发明实施例中,所述执行模块13,还包括用于执行以下步骤:
获取所述测试结果对应的执行时间;
判断所述执行时间是否大于预设的测试时间;
若是,则输出结果至所述测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
本发明实施例中,所述测试脚本的运作流程如下:当脚本测试装置检测到的情景与脚本预定义的触发情景匹配时,脚本测试装置就自动触发测试脚本里脚本动作定义的动作,执行完这些动作后,脚本测试装置开始检测执行结果,如果在一定时间内检测到相应的期望结果,则认为测试通过,否则测试失败。
本发明实施例中,所述执行结果与期望结果存在差异性,具体为:所述执行结果为当前处于测试过程中执行完所述测试脚本后所得到的结果;而所述期望结果为所述测试脚本在进入测试阶段之前预先定义的结果;其中所述结果均包括如下任意一项或多项:看到某图像、看到某段字符、听到某段音频,或者这三种元素的逻辑组合(与、或、非)。
请参阅附图4所示的第二实施例结构框图,本发明还提供一种脚本测试装置,包括:
初始加载模块21,用于初始化测试系统,加载测试脚本;将所述测试脚本对应的测试结果标记为未测试。
本发明实施例中,所述测试脚本加载入测试装置后,触发标记指令,响应于该标记指令将测试脚本标记为未测试,以根据该未测试的标记信息判断筛选出已测试完毕的测试脚本。
第一判断模块22,用于判断所述测试脚本对应的执行时间是否大于预设的测试时间。
若判断结果为所述执行时间大于测试时间时,则进行测试报告模块26;
若判断结果为所述执行时间不大于测试时间时,则进行第二判断模块 23。
本发明实施例中,所述第一判断模块22,还包括用于执行以下步骤:
获取所有测试脚本测试完毕的结束指令;
根据所述结束指令,获取其对应的执行时间W;
确定预先定义的所有测试脚本测试完毕的测试时间为T;
判断是否满足条件W>T,根据判断结果进行下一步进程,包括如下任意一项:输出结果至测试报告信息中、检测所述脚本情景与所述触发情景之间的匹配关系。
第二判断模块23,用于根据所述测试脚本确认其对应预设的触发情景;判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配。
若判断结果为所述脚本情景与触发情景互为匹配时,则进行触发确认模块24;
若判断结果为所述脚本情景与触发情景不匹配时,则进行第一判断模块 22。
本发明实施例中,所述触发情景与脚本情景存在区别,其中所述触发情景指的是根据当前处于测试阶段的测试脚本检测出的对应情景;而脚本情景为根据所述测试脚本预先设置的情景。所述情景表示看到某图像、看到某段字符、听到某段音频、检测到虚拟情景后触发的等。
本发明实施例中,所述第二判断模块23,还包括用于执行以下步骤:
依据所述测试脚本分别获取所述脚本情景和触发情景的第一情景对象和第二情景对象,所述第一情景对象或第二情景对象包括图像、字符、音频、虚拟情景等;
根据所述第一情景对象和第二情景对象,分别调用其相应的第一对象特征信息和第二对象特征信息;
比对所述第一对象特征信息和第二对象特征信息,得出两者的差异值;
当所述差异值满足一定的阈值时,则确认所述脚本情景和触发情景两者互为匹配,否则不匹配。
触发确认模块24,用于获取所述脚本情景与触发情景之间互为匹配的结果,将所述脚本情景对应的测试脚本确定为触发脚本。
第三判断模块25,用于检测出执行完所述脚本动作后生成的所述触发脚本对应的执行结果;判断所述执行结果与所述触发脚本对应的期望结果是否匹配。
若判断结果为所述执行结果与期望结果互为匹配时,则进行记录模块 26;
若判断结果为所述执行结果与期望结果不匹配时,则进行记录模块26。
本发明实施例中,所述执行结果与期望结果存在差异性,具体为:所述执行结果为当前处于测试过程中执行完所述测试脚本后所得到的结果;而所述期望结果为所述测试脚本在进入测试阶段之前预先定义的结果;其中所述结果均包括如下任意一项或多项:看到某图像、看到某段字符、听到某段音频,或者这三种元素的逻辑组合(与、或、非)。
记录模块26:用于记录测试结果。
本发明实施例中,记录模块26用于执行以下步骤:
接收经由第三判断模块25后输出的测试结果并进行记录,如记录的测试结果包括如下任意一项:测试成功、测试失败、其他等。
优选的,本发明实施例中,记录模块26还用于执行以下步骤:
获取所述测试结果对应的执行时间;
判断所述执行时间是否大于预设的测试时间;
若是,则输出结果至所述测试报告信息中,即执行测试报告模块27;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系,即执行第二判断模块23。
需要说明的是,当记录完测试结果后,可选的跳转至第一判断模块22,后经由第一判断模块22中的测试脚本的执行时间与预设的测试时间之间的比较选择输出测试结果至测试报告信息中或进一步执行第二判断模块23。
测试报告模块27:用于输出结果至测试报告信息中。
本发明实施例中,所述测试报告模块27包括用于执行以下步骤:
将所述测试结果记录至所述触发脚本中,并停止执行该触发脚本对应的脚本动作,以根据所述触发脚本生成测试报告信息。
本发明实施例中,所述测试报告模块27还包括用于执行以下步骤:
获取所述测试结果,并根据所述测试结果对所述测试脚本进行标签,通过该标签获取对应的脚本信息。
如图6所示,本发明实施例中以测试数据表为存储形式的测试报告信息,其中每一测试脚本标识有对应的脚本编号,以便于识别测试脚本。在该测试报告信息生成的测试数据表中,存储的信息包括有以下任意一种或多种:预设触发情景、预设的脚本动作、预设期望结果、预设测试时间、实际脚本情景、实际执行动作、实际执行结果、实际执行时间以及测试结果等。
本发明实施例中,所述测试报告信息的存储形式或显示方式包括有如下任意一种:表格、弹窗、数据界面、源代码、浮窗等。
相应的,如图7所示,本发明还提供一种脚本测试系统,包括:
主机和脚本测试装置;
所述主机和/或脚本测试装置用于执行上述所述脚本测试方法。
本发明实施例中,所述主机将测试脚本加载入所述测试装置,所述测试装置通过检测所述测试脚本对应的脚本情景,进而将所述脚本情景与预设的触发情景进行匹配,根据匹配结果执行所述测试脚本对应的执行动作,可选的是,所述测试装置可进一步判断所述执行动作与预设的脚本动作之间的匹配程度,当匹配程度达至一定的参数值时,则输出执行结果。所述测试装置将所述执行结果与预设的期望结果进行匹配,若两者互为匹配时,则表示测试成功,若否则测试失败。所述测试装置将测试结果输出至主机,所述主机将根据传输的测试结果整理出测试报告信息或制定对应的测试数据表;或者所述测试装置获取相应的测试结果,将所述测试结果输出至测试报告信息中,或制定相对应的测试报告表,以传输至主机。
本发明实施例中,所述脚本测试系统还包括:
一个或多个第一处理器;
第一存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述第一存储器中并被配置为由所述一个或多个第一处理器执行;
所述一个或多个程序用于驱动所述一个或多个第一处理器构造用于执行以下步骤:
获取测试脚本,检测出该测试脚本对应的脚本情景;
基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系;
根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
相应的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行上述脚本测试方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、 RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM (ElectricallyEraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
综上所述,本发明提供了一种基于情景驱动式的脚本测试方法、装置及系统,其中测试脚本被加载到测试装置中,测试装置可以根据不同的脚本情景执行相应的测试脚本,而不是简单的将所有测试脚本顺序执行,解决了传统自动化测试方法中由于脚本情景与触发情景不同,而导致的无法准确测试的缺陷。
本发明的方法中当检测到的脚本情景与测试脚本预定义的触发情景匹配时,将自动触发执行测试脚本里定义的脚本动作,执行完脚本动作,将检测其执行结果,如果在一定时间内检测到与相应的期望结果相匹配的执行结果,则认为测试通过,否则测试失败。避免了传统测试方法中执行脚本动作的执行结果与期望结果不一致时,会导致后面的脚本动作执行时产生的错误。
在此处所提供的说明书中,虽然说明了大量的具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实施例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然上面已经示出了本发明的一些示例性实施例,但是本领域的技术人员将理解,在不脱离本发明的原理或精神的情况下,可以对这些示例性实施例做出改变,本发明的范围由权利要求及其等同物限定。
Claims (10)
1.一种脚本测试方法,其特征在于,包括:
获取测试脚本,检测出该测试脚本对应的脚本情景;
基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系;
根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
2.根据权利要求1所述方法,其特征在于,所述获取测试脚本,检测出该测试脚本对应的脚本情景,包括以下前置步骤:
初始化测试系统,加载测试脚本;
将所述测试脚本对应的测试结果标记为未测试。
3.根据权利要求1或2所述方法,其特征在于,所述获取测试脚本,检测出该测试脚本对应的脚本情景,包括:
判断所述测试脚本对应的执行时间是否大于预设的测试时间;
若是,则输出结果至测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
4.根据权利要求3所述方法,其特征在于,所述基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系,包括:
根据所述测试脚本确认其对应预设的触发情景;
判断所述测试脚本相应的脚本情景与所述触发情景之间是否匹配;
若是,则确定所述测试脚本为触发脚本,以执行所述触发脚本对应的脚本动作;
若否,则返回判断所述执行时间是否大于所述预设的测试时间。
5.根据权利要求4所述方法,其特征在于,所述确定所述测试脚本为触发脚本,包括:
获取所述脚本情景与触发情景之间互为匹配的结果,将所述脚本情景对应的测试脚本确定为触发脚本。
6.根据权利要求4中任意所述方法,其特征在于,所述根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果,包括:
检测出执行完所述脚本动作后生成的所述触发脚本对应的执行结果;
判断所述执行结果与所述触发脚本对应的期望结果是否匹配;
若是,则将所述执行结果标记为测试成功,并记录为所述测试脚本对应的测试结果;
若否,则将所述执行结果标记为测试失败,并记录为所述测试脚本对应的测试结果。
7.根据权利要求6中任意所述方法,其特征在于,所述根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果,还包括:
将所述测试结果记录至所述触发脚本中,并停止执行该触发脚本对应的脚本动作,以根据所述触发脚本生成测试报告信息。
8.根据权利要求6所述方法,其特征在于,所述根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果,还包括:
获取所述测试结果对应的执行时间;
判断所述执行时间是否大于预设的测试时间;
若是,则输出结果至所述测试报告信息中;
若否,则检测所述脚本情景与所述触发情景之间的匹配关系。
9.一种脚本测试装置,其特征在于,包括:
检测模块:用于获取测试脚本,检测出该测试脚本对应的脚本情景;
确认模块:用于基于所述脚本情景,确认该脚本情景与预设的触发情景之间的匹配关系;
执行模块:用于根据所述匹配关系,执行该匹配关系下触发脚本对应的脚本动作,以生成测试结果。
10.一种脚本测试系统,其特征在于,包括:
主机和脚本测试装置;
所述主机和/或脚本测试装置用于执行权利要求1-8中所述脚本测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810548165.0A CN108763087A (zh) | 2018-05-31 | 2018-05-31 | 一种脚本测试方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810548165.0A CN108763087A (zh) | 2018-05-31 | 2018-05-31 | 一种脚本测试方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763087A true CN108763087A (zh) | 2018-11-06 |
Family
ID=64001012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810548165.0A Pending CN108763087A (zh) | 2018-05-31 | 2018-05-31 | 一种脚本测试方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763087A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893883A (zh) * | 2023-08-04 | 2023-10-17 | 中国人民解放军战略支援部队航天工程大学 | 一种兵棋对抗指令集方案推演脚本设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819485A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种测试场景生成方法、装置及系统 |
WO2014169565A1 (zh) * | 2013-08-21 | 2014-10-23 | 中兴通讯股份有限公司 | 终端的测试方法及装置 |
US9348727B1 (en) * | 2015-11-18 | 2016-05-24 | International Business Machines Corporation | Enhancing GUI automation testing using video |
CN105608005A (zh) * | 2015-12-23 | 2016-05-25 | 深圳创维-Rgb电子有限公司 | 一种电视系统的测试方法及系统 |
CN106371990A (zh) * | 2016-08-30 | 2017-02-01 | 福建天晴数码有限公司 | 一种交互式软件并发处理能力的测试方法及系统 |
-
2018
- 2018-05-31 CN CN201810548165.0A patent/CN108763087A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819485A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种测试场景生成方法、装置及系统 |
WO2014169565A1 (zh) * | 2013-08-21 | 2014-10-23 | 中兴通讯股份有限公司 | 终端的测试方法及装置 |
US9348727B1 (en) * | 2015-11-18 | 2016-05-24 | International Business Machines Corporation | Enhancing GUI automation testing using video |
CN105608005A (zh) * | 2015-12-23 | 2016-05-25 | 深圳创维-Rgb电子有限公司 | 一种电视系统的测试方法及系统 |
CN106371990A (zh) * | 2016-08-30 | 2017-02-01 | 福建天晴数码有限公司 | 一种交互式软件并发处理能力的测试方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893883A (zh) * | 2023-08-04 | 2023-10-17 | 中国人民解放军战略支援部队航天工程大学 | 一种兵棋对抗指令集方案推演脚本设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073519B (zh) | 测试用例生成方法和装置 | |
TW201518933A (zh) | 測試裝置及其測試方法 | |
CN110058997A (zh) | 应用响应时间测试方法、装置、计算机设备及存储介质 | |
CN108490336B (zh) | 板卡测试方法、系统、可读存储介质及计算机设备 | |
CN105446864A (zh) | 缓存文件删除影响的校验方法、装置及移动终端 | |
CN110287696A (zh) | 一种反弹shell进程的检测方法、装置和设备 | |
CN107391362A (zh) | 应用测试方法、移动终端及存储介质 | |
US20240311277A1 (en) | Automated testing of mobile devices using visual analysis | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
CN110889116B (zh) | 一种广告拦截方法、装置及电子设备 | |
CN108509348A (zh) | 一种系统老化的测试方法及移动终端 | |
CN112685299B (zh) | 自动测试方法、装置、电子设备及可读存储介质 | |
CN108763087A (zh) | 一种脚本测试方法、装置及系统 | |
CN108595332A (zh) | 软件测试方法及装置 | |
CN107102937A (zh) | 一种用户界面测试方法和装置 | |
CN111026651B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN111694735A (zh) | 一种页面性能测试方法、装置、电子设备及存储介质 | |
CN110580221A (zh) | 控件测试方法、装置、存储介质及电子设备 | |
CN104424096B (zh) | 一种对基于安卓平台的设备的自动化测试系统及方法 | |
CN114564206A (zh) | 一种数据非空校验方法、装置、设备及可读存储介质 | |
CN110221756B (zh) | 处理应用数据的方法、装置、终端及存储介质 | |
CN109684525B (zh) | 文档显示方法、装置、存储介质及测试设备 | |
CN113127369A (zh) | 一种执行脚本的处理方法以及装置 | |
CN111597119A (zh) | 测试脚本更新方法、装置、存储介质及处理器 | |
CN108279937B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |
|
RJ01 | Rejection of invention patent application after publication |