CN108710571A - 一种生成自动化测试代码的方法和装置 - Google Patents
一种生成自动化测试代码的方法和装置 Download PDFInfo
- Publication number
- CN108710571A CN108710571A CN201810457299.1A CN201810457299A CN108710571A CN 108710571 A CN108710571 A CN 108710571A CN 201810457299 A CN201810457299 A CN 201810457299A CN 108710571 A CN108710571 A CN 108710571A
- Authority
- CN
- China
- Prior art keywords
- test
- text
- test suite
- suite
- library
- 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.)
- Granted
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/3684—Test management for test design, e.g. generating new test cases
-
- 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
Abstract
本申请公开了一种生成自动化测试代码的方法和装置,该方法包括:获取测试文本案例,测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;解析测试文本案例,获得按照测试操作步骤排列的测试文本队列;根据测试文本队列、关键字‑测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息‑参数序列;根据目标测试组件相关信息‑参数序列和测试组件模板库,生成自动化测试代码。可见,基于符合编写规范的测试文本案例,自动解析测试文本案例,通过关键字‑测试组件索引映射关系库、测试组件相关信息库和测试组件模板库,确定对应的测试组件模板,整合生成可维护、可复用、管理性强的自动化测试代码。
Description
技术领域
本申请涉及自动化技术领域,尤其涉及一种生成自动化测试代码的方法和装置。
背景技术
随着信息科技技术的快速发展,软件产品的质量越来越重要,一般通过软件测试保障软件产品的质量。一般地,采用自动化测试方式测试软件产品,即,通过工具的方式来代替或辅助人为手工测试的方式测试软件产品,以减少重复机械的测试工作,提高测试精度,保障测试的一致性和可重复性。
由于自动化测试本质上是由测试人员编写代码去测试软件产品,因此,现有技术中,例如,在用户界面(英文:User Interface,缩写:UI)自动化测试中,测试人员需要根据每个功能场景编写对应地识别并操作界面中的界面元素的代码去,然后依次运行编写的代码达到自动化测试的目的。
但是,发明人经过研究发现,现有技术的方式针对每个功能场景都需要进行代码编写,且功能场景改动后需要修改代码,以及构建自动化测试流程也相当复杂繁琐,编写代码并构建自动化测试流程耗时耗力,实现自动化测试效率低下,且编写的代码难以维护。
发明内容
本申请所要解决的技术问题是,提供一种生成自动化测试代码的方法和装置,不需要为每个功能场景编写自动化测试代码,就能实现自动生成自动化测试代码完成自动化测试的目的,不仅提高了自动化测试代码的速度,自动化测试代码可维护、可复用、可管理性强,而且大大提高了自动化测试流程构建的效率。
第一方面,本申请实施例提供了一种生成自动化测试代码的方法,该方法包括:
获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;
解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的;
根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;
根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。
优选的,所述编写规范包括操作对象、对象标识和对象操作内容数据项;所述操作对象为需操作的界面元素的类型;所述对象标识为所述需操作的界面元素的描述;所述对象操作内容为所述需操作的界面元素的操作内容。
优选的,所述测试组件相关信息至少包括测试组件标识;所述测试组件相关信息还包括测试组件名称和/或测试组件类别。
优选的,所述根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列,包括:
从所述测试文本队列获取单个测试操作步骤文本;
根据所述单个测试操作步骤文本和关键字-测试组件索引映射关系库,获得对应的测试组件索引;
根据所述单个测试操作步骤文本、所述测试组件索引和所述测试组件相关信息库,获得对应的测试组件相关信息-参数数据项;
返回执行所述从所述测试文本队列获取单个测试操作步骤文本步骤,直至获得所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项;
根据所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项,获得目标测试组件标识-参数序列。
优选的,所述根据所述单个测试操作步骤文本和关键字-测试组件索引映射关系库,获得对应的测试组件索引,包括:
获取所述关键字-测试组件索引映射关系库中的关键字集合;
根据所述关键字集合和所述单个测试操作步骤文本,确定对应的关键字;
根据所述关键字遍历所述关键字-测试组件索引映射关系库,获得对应的测试组件索引。
优选的,所述根据所述单个测试操作步骤文本、所述测试组件索引和所述测试组件相关信息库,获得对应的测试组件相关信息-参数数据项,包括:
解析所述单个测试操作步骤文本获得参数;
根据所述测试组件索引遍历所述测试组件相关信息库,获得对应的测试组件相关信息;
将所述参数与所述对应的测试组件相关信息相关联,获得所述测试组件相关信息-参数数据项。
优选的,所述根据所述测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码,包括:
根据所述测试组件相关信息-参数序列,检索所述测试组件模板库,获得所述测试组件模板序列;
将所述测试组件相关信息-参数序列的参数依次传入所述测试组件模板序列对应的测试组件模板,整合生成自动化测试代码。
优选的,在生成自动化测试代码之后,还包括:
执行所述自动化测试代码。
优选的,在执行所述自动化测试代码之后,还包括:
分析所述自动化测试代码的执行结果。
第二方面,本申请实施例提供了一种生成自动化测试代码的装置,该装置包括:
获取单元,用于获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例,所述编写规范包括操作对象、对象标识和对象操作内容数据项;
解析单元,用于解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的;
获得单元,用于根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;
生成单元,用于根据所述测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码
与现有技术相比,本申请至少具有以下优点:
采用本申请实施例的技术方案,首先,获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;然后,解析所述测试文本案例,获得按照所述测试操作步骤排列的测试文本队列;其次,根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;最后,根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。由此可见,基于测试人员按照编写规范输入的测试文本案例,自动解析测试文本案例,通过关键字-测试组件索引映射关系库、测试组件相关信息库和测试组件模板库,确定对应的测试组件模板,整合生成自动化测试代码。即,不需要为每个功能场景编写自动化测试代码,就能实现自动生成自动化测试代码完成自动化测试的目的,该方式不仅提高了生成自动化测试代码的速度,自动化测试代码可维护、可复用、可管理性强,而且大大提高了自动化测试流程构建的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例中一种应用场景所涉及的系统框架示意图;
图2为本申请实施例提供的一种生成自动化测试代码的方法的流程示意图;
图3为本申请实施例提供的另一种生成自动化测试代码的方法的流程示意图;
图4为本申请实施例提供的一种生成自动化测试代码的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人经过研究发现,为了解决手工测试软件产品工作量大而繁琐,且容易出现操作失误的问题,一般地,采用自动化测试方式测试软件产品,以减少重复机械的测试工作,提高测试精度。其本质上是由测试人员编写代码去测试软件产品。例如,在UI自动化测试中,测试人员需要根据每个功能场景编写对应地识别并操作界面中的界面元素的代码去,然后依次运行编写的代码达到自动化测试的目的。但是,针对每个功能场景,利用现有技术中的方式都需要进行代码编写,且功能场景改动后需要修改代码,以及构建自动化测试流程也相当复杂繁琐,编写代码并构建自动化测试流程耗时耗力,实现自动化测试效率低下,且编写的代码难以维护。
为了解决这一问题,在本申请实施例中,首先,获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;然后,解析所述测试文本案例,获得按照所述测试操作步骤排列的测试文本队列;其次,根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;最后,根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。由此可见,基于测试人员按照编写规范输入的测试文本案例,自动解析测试文本案例,通过关键字-测试组件索引映射关系库、测试组件相关信息库和测试组件模板库,确定对应的测试组件模板,整合生成自动化测试代码。即,不需要为每个功能场景编写自动化测试代码,就能实现自动生成自动化测试代码完成自动化测试的目的,该方式不仅提高了生成自动化测试代码的速度,自动化测试代码可维护、可复用、可管理性强,而且大大提高了自动化测试流程构建的效率。
举例来说,本申请实施例的场景之一,可以是应用到如图1所示的场景中。该场景包括客户端101、服务器102、关键字-测试组件索引映射关系库103、测试组件相关信息库104和测试组件模板库105,所述客户端101与服务器102之间进行交互。测试人员基于待测试内容按照编写规范描述测试操作步骤,通过客户端101输入测试文本案例,服务器102获取测试文本案例。服务器102解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的。服务器102根据所述测试文本队列,从关键字-测试组件索引映射关系库103和测试组件相关信息库104,获得目标测试组件相关信息-参数序列。服务器102根据所述目标测试组件相关信息-参数序列和测试组件模板库105,生成自动化测试代码。服务器102将自动化测试代码发送给客户端101,以便显示给测试人员。
可以理解的是,在上述应用场景中,虽然将本申请实施方式的动作描述由服务器102执行,但是这些动作也可以由客户端101执行,或者还可以部分由客户端101执行、部分由服务器102执行。本申请在执行主体方面不受限制,只要执行了本申请实施方式所公开的动作即可。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中生成自动化测试代码的方法和装置的具体实现方式。
示例性方法
参见图2,示出了本申请实施例中一种生成自动化测试代码的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤201:获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例。
可以理解的是,基于待测测软件的待测试内容,直接编写自动化测试代码难度较大,而且针对不同的待测试内容需编写不同的自动化测试代码,或者待测试内容更新时需要修改已有的自动化测试代码,测试人员的工作量巨大,耗时耗力,尤其是对于专业性较弱的测试人员而言,编写或者修改测试代码更加困难,因而,在本实施例中,不需要编写测试代码,而是基于待测测软件的待测试内容,通过描述测试操作步骤生成测试文本案例,以便基于该测试文本案例由服务器自动生成测试代码。
需要说明的是,上述测试文本案例需要符合一定的编写规范,由服务器才能解析所述测试文本案例,并经过后续一系列处理自动生成测试代码。所述编写规范主要是规定了测试文本案例需要具有哪些描述测试操作步骤的文本数据等。因此,在本实施例的一些实施方式中,所述编写规范包括操作对象、对象标识和对象操作内容数据项;所述操作对象为需操作的界面元素的类型;所述对象标识为所述需操作的界面元素的描述;所述对象操作内容为所述需操作的界面元素的操作内容。
一般,测试文本案例采用excel格式进行编写,对于UI自动化测试而言,测试文本案例的编写规范可以如下表格1所示:
表格1
其中,表格1中的操作对象列填写的是需要操作的界面元素类型,例如,下拉框、单选框和按钮等;对象标识列填写的需操作的界面元素的描述,例如,界面元素的名称等;对象操作内容列填写的是需操作的界面元素的操作内容,例如,应该输入的数值或进行的操作。例如,若符合上述表格1的编写规范的测试文本案例具体为如下表格2所示:
表格2
则该测试文本案例是实现人民币汇款功能的测试文本案例,第一个步骤表示名称为“业务类别”的“下拉框”选择“对公活期”,第二个步骤表示名称为“柜员编号”的“文本框”输入“123456”,……,直到最后一步表示点击名称为“提交”的“按钮”。
步骤202:解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的。
可以理解的是,由于测试文本案例可能包括一个或者多个测试操作步骤的文本,对应地,首先需要将测试文本案例解析为包括一个或多个单个测试操作步骤的文本的测试文本队列。
步骤203:根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列。
可以理解的是,对于UI自动化测试而言,采用界面元素分类及抽象引擎对界面元素进行解析和归类,从而将各种类别界面元素封装成集自动化识别、数据模型和操作等处理的代码类,形成各种测试组件,每种测试组件表示处理一类界面元素的代码类,可由其他程序进行调用,通过传入参数进行控制。例如,按钮测试组件和文本框测试组件等。
需要说明的是,为了基于测试文本案例生成自动化测试代码,需要找到测试文本案例与测试组件之间的联系。预先整理上述测试组件,获得对应的组件相关信息;例如,测试组件标识、测试组件名称和测试组件类别等,存储这些测试组件对应的测试组件相关信息,形成测试组件相关信息库。为了方便查找测试组件相关信息,预先为每个测试组件对应的测试组件相关信息设置测试组件索引,根据测试组件相关信息选择对应的关键字作为测试组件索引映射信息,形成关键字-测试组件索引映射关系库。具体地,若是步骤202得到的测试文本队列中单个测试操作步骤文本中的操作对象与关键字-测试组件索引映射关系库中的关键字集合相匹配,即可映射为对应的测试组件索引,进而查找到对应的测试组件相关信息。此外,解析单个测试操作步骤文本中的对象标识和对象操作内容作为参数,以便后续使用。因此,在本实施例的一些实施方式中,所述步骤203例如可以包括如下步骤:
步骤A:从所述测试文本队列获取单个测试操作步骤文本;
步骤B:根据所述单个测试操作步骤文本和关键字-测试组件索引映射关系库,获得对应的测试组件索引;
步骤C:根据所述单个测试操作步骤文本、所述测试组件索引和所述测试组件相关信息库,获得对应的测试组件相关信息-参数数据项;
步骤D:返回执行步骤A至步骤C,直至获得所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项;
步骤E:根据所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项,获得目标测试组件标识-参数序列。
其中,需要说明的是,关键字-测试组件索引映射关系库包括关键字、测试组件索引和关键字-测试组件索引映射关系,所有关键字形成关键字集合,若将该关键字集合中的关键字依次与单个测试操作步骤文本进行匹配,匹配成功的关键字,则确定为对应单个测试操作步骤文本的关键字,基于关键字-测试组件索引映射关系,可以将上述关键字映射为对应单个测试操作步骤文本的测试组件索引。因此,在本实施例的一些实施方式中,所述步骤B例如可以包括如下步骤:
步骤B1:获取所述关键字-测试组件索引映射关系库中的关键字集合;
步骤B2:根据所述关键字集合和所述单个测试操作步骤文本,确定对应的关键字;
步骤B3:根据所述关键字遍历所述关键字-测试组件索引映射关系库,获得对应的测试组件索引。
可以理解的是,多次执行步骤B过程中,多个关键字可能对应到同一个组件索引。
另需要说明的是,在获得测试组件索引,可以单个测试操作步骤文本中获得参数解析出来,而且基于测试组件索引可以在测试组件相关信息库直接找到对应的测试组件相关信息,解析得到的参数与测试组件相关信息相对应。因此,在本实施例的一些实施方式中,所述步骤C例如可以包括如下步骤:
步骤C1:解析所述单个测试操作步骤文本获得参数;
步骤C2:根据所述测试组件索引遍历所述测试组件相关信息库,获得对应的测试组件相关信息;
步骤C3:将所述参数与所述对应的测试组件相关信息相关联,获得所述测试组件相关信息-参数数据项。
还需要说明的是,整理得到的测试组件标识、测试组件名称和测试组件类别均可以作为测试组件相关信息,其中,至少需要基于测试组件标识以便后续查找到对应的测试组件,即,测试组件标识是后续查找到对应的测试组件的必要数据。当然,也可以基于测试组件标识和测试组件名称查找到对应的测试组件,或者,基于测试组件标识和测试组件类别查找到对应的测试组件,还可以,基于测试组件标识、测试组件名称和测试组件类别查找到对应的测试组件。利用测试组件名称和测试组件类别可以提高查找对应测试组件的速度。因此,在本实施例的一些实施方式中,所述测试组件相关信息至少包括测试组件标识;所述测试组件相关信息还包括测试组件名称和/或测试组件类别。
在步骤203获得目标测试组件相关信息-参数序列之后,执行如下所示步骤204。
步骤204:根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。
需要说明的是,预先存储各种测试组件形成测试组件模板库,基于步骤203得到的测试组件相关信息-参数序列,即至少是测试组件标识-参数序列,可以从测试组件模板库查找到对应各个测试组件标识的各个测试组件模板,形成测试组件模板序列,将测试组件标识-参数序列中的相应的参数依次传入测试组件模板序列,以便明确如何调用测试组件模板序列中的各个测试组件模板,从而编译生成自动化测试代码。因此,在本实施例的一些实施方式中,所述步骤204例如可以包括如下步骤:
步骤F:根据所述测试组件相关信息-参数序列,检索所述测试组件模板库,获得所述测试组件模板序列;
步骤G:将所述测试组件相关信息-参数序列的参数依次传入所述测试组件模板序列对应的测试组件模板,整合生成自动化测试代码。
另需要说明的是,在步骤204之后,还需要为自动化测试代码提供一个代码执行环境,正确而有效地执行自动化测试代码可以被。其中,提供的代码执行环境需要与待测试软件的待测试内容的运行环境相同,以确保自动化测试代码的顺利执行,保障测试结果的准确性。因此,在本实施例的一些实施方式中,在步骤204之后,还包括:执行所述自动化测试代码。例如,利用代码执行器提供代码执行环境。
还需要说明的是,在执行自动化测试代码过程中,记录调用执行测试组件模板序列每个测试组件模板的执行结果,统计分析这些执行结果反馈至客户端,以便测试人员了解自动化测试的具体情况。因此,在本实施例的一些实施方式中,在执行所述自动化测试代码之后,还包括:分析所述自动化测试代码的执行结果。例如,执行自动化测试代码过程中可能出现异常的错误信息,每个异常的错误信息能够被捕获并且保存,对这些错误信息进行统计分析,并反馈至客户端,与测试文本案例相关联,完整地实现自动化测试流程。
通过本实施例提供的各种实施方式,首先,获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;然后,解析所述测试文本案例,获得按照所述测试操作步骤排列的测试文本队列;其次,根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;最后,根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。由此可见,基于测试人员按照编写规范输入的测试文本案例,自动解析测试文本案例,通过关键字-测试组件索引映射关系库、测试组件相关信息库和测试组件模板库,确定对应的测试组件模板,整合生成自动化测试代码。即,不需要为每个功能场景编写自动化测试代码,就能实现自动生成自动化测试代码完成自动化测试的目的,该方式不仅提高了生成自动化测试代码的速度,自动化测试代码可维护、可复用、可管理性强,而且大大提高了自动化测试流程构建的效率。
下面结合附图3,通过又一个实施例来详细说明在实际应用中,本申请生成自动化测试代码的方法和装置的具体实现方式。
参见图3,示出了本申请实施例中另一种生成自动化测试代码的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤301:获取测试文本案例,测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例。
步骤302:解析测试文本案例,获得测试文本队列,测试文本队列是按照测试操作步骤排列的。
步骤303:从测试文本队列获取单个测试操作步骤文本。
步骤304:获取关键字-测试组件索引映射关系库中的关键字集合。
步骤305:根据关键字集合和单个测试操作步骤文本,确定对应的关键字。
步骤306:根据关键字遍历关键字-测试组件索引映射关系库,获得对应的测试组件索引。
步骤307:解析单个测试操作步骤文本获得参数。
步骤308:根据测试组件索引遍历测试组件相关信息库,获得对应的测试组件相关信息。
步骤309:将参数与对应的测试组件相关信息相关联,获得测试组件相关信息-参数数据项,执行步骤303。
步骤310:判断测试文本队列是否为空,若否,执行步骤303;若是,进入步骤311。
步骤311:根据测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项,获得目标测试组件标识-参数序列。
步骤312:根据测试组件相关信息-参数序列,检索测试组件模板库获得测试组件模板序列。
步骤313:将测试组件相关信息-参数序列的参数依次传入测试组件模板序列对应的测试组件模板,生成自动化测试代码。
步骤314:执行自动化测试代码。
步骤315:分析自动化测试代码的执行结果。
需要说明的是,对于步骤306而言,在实际应用中,具体是根据关键字集合,生成关键字队列;从关键字队列获得单个关键字,与单个测试操作步骤文本进行匹配,匹配成功,确定对应的关键字;匹配失败,判断关键字队列是否为空,若否,继续执行从关键字队列获得单个关键字步骤;若是,提示测试文本案例错误,更新测试文本案例。
通过本实施例提供的各种实施方式,首先,获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;然后,解析所述测试文本案例,获得按照所述测试操作步骤排列的测试文本队列;其次,根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;最后,根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。由此可见,基于测试人员按照编写规范输入的测试文本案例,自动解析测试文本案例,通过关键字-测试组件索引映射关系库、测试组件相关信息库和测试组件模板库,确定对应的测试组件模板,整合生成自动化测试代码。即,不需要为每个功能场景编写自动化测试代码,就能实现自动生成自动化测试代码完成自动化测试的目的,该方式不仅提高了生成自动化测试代码的速度,自动化测试代码可维护、可复用、可管理性强,而且大大提高了自动化测试流程构建的效率。
示例性设备
参见图4,示出了本申请实施例中一种生成自动化测试代码的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
获取单元401,用于获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;
解析单元402,用于解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的;
获得单元403,用于根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;
生成单元404,用于根据所述测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。
可选的,所述编写规范包括操作对象、对象标识和对象操作内容数据项;所述操作对象为需操作的界面元素的类型;所述对象标识为所述需操作的界面元素的描述;所述对象操作内容为所述需操作的界面元素的操作内容。
可选的,所述测试组件相关信息至少包括测试组件标识;所述测试组件相关信息还包括测试组件名称和/或测试组件类别。
可选的,所述获得单元403包括:
获取子单元,用于从所述测试文本队列获取单个测试操作步骤文本;
第一获得子单元,用于根据所述单个测试操作步骤文本和关键字-测试组件索引映射关系库,获得对应的测试组件索引;
第二获得子单元,用于根据所述单个测试操作步骤文本、所述测试组件索引和所述测试组件相关信息库,获得对应的测试组件相关信息-参数数据项;
返回子单元,用于返回进入获取子单元,直至获得所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项;
第三获得子单元,用于根据所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项,获得目标测试组件标识-参数序列。
可选的,所述第一获得子单元包括:
获取模块,用于获取所述关键字-测试组件索引映射关系库中的关键字集合;
确定模块,用于根据所述关键字集合和所述单个测试操作步骤文本,确定对应的关键字;
第一获得模块,用于根据所述关键字遍历所述关键字-测试组件索引映射关系库,获得对应的测试组件索引。
可选的,所述第二获得子单元包括:
解析模块,用于解析所述单个测试操作步骤文本获得参数;
第二获得模块,用于根据所述测试组件索引遍历所述测试组件相关信息库,获得对应的测试组件相关信息;
第三获得模块,用于将所述参数与所述对应的测试组件相关信息相关联,获得所述测试组件相关信息-参数数据项。
可选的,所述生成单元404包括:
第四获得子单元,用于根据所述测试组件相关信息-参数序列,检索所述测试组件模板库,获得所述测试组件模板序列;
生成子单元,用于将所述测试组件相关信息-参数序列的参数依次传入所述测试组件模板序列对应的测试组件模板,整合生成自动化测试代码。
可选的,所述装置还包括:
执行单元,用于执行所述自动化测试代码。
可选的,所述装置还包括:
分析单元,用于分析所述自动化测试代码的执行结果
通过本实施例提供的各种实施方式,获取单元用于获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;解析单元用于解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的;获得单元用于根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;生成单元用于根据所述测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。由此可见,基于测试人员按照编写规范输入的测试文本案例,自动解析测试文本案例,通过关键字-测试组件索引映射关系库、测试组件相关信息库和测试组件模板库,确定对应的测试组件模板,整合生成自动化测试代码。即,不需要为每个功能场景编写自动化测试代码,就能实现自动生成自动化测试代码完成自动化测试的目的,该方式不仅提高了生成自动化测试代码的速度,自动化测试代码可维护、可复用、可管理性强,而且大大提高了自动化测试流程构建的效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一成自动化测试代码的方法,其特征在于,包括:
获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例;
解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的;
根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;
根据所述目标测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。
2.根据权利要求1所述的方法,其特征在于,所述编写规范包括操作对象、对象标识和对象操作内容数据项;所述操作对象为需操作的界面元素的类型;所述对象标识为所述需操作的界面元素的描述;所述对象操作内容为所述需操作的界面元素的操作内容。
3.根据权利要求1所述的方法,其特征在于,所述测试组件相关信息至少包括测试组件标识;所述测试组件相关信息还包括测试组件名称和/或测试组件类别。
4.根据权利要求1所述的方法,其特征在于,所述根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列,包括:
从所述测试文本队列获取单个测试操作步骤文本;
根据所述单个测试操作步骤文本和关键字-测试组件索引映射关系库,获得对应的测试组件索引;
根据所述单个测试操作步骤文本、所述测试组件索引和所述测试组件相关信息库,获得对应的测试组件相关信息-参数数据项;
返回执行所述从所述测试文本队列获取单个测试操作步骤文本步骤,直至获得所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项;
根据所述测试文本队列中各个单个测试操作步骤文本对应的测试组件相关信息-参数数据项,获得目标测试组件标识-参数序列。
5.根据权利要求4所述的方法,其特征在于,所述根据所述单个测试操作步骤文本和关键字-测试组件索引映射关系库,获得对应的测试组件索引,包括:
获取所述关键字-测试组件索引映射关系库中的关键字集合;
根据所述关键字集合和所述单个测试操作步骤文本,确定对应的关键字;
根据所述关键字遍历所述关键字-测试组件索引映射关系库,获得对应的测试组件索引。
6.根据权利要求4所述的方法,其特征在于,所述根据所述单个测试操作步骤文本、所述测试组件索引和所述测试组件相关信息库,获得对应的测试组件相关信息-参数数据项,包括:
解析所述单个测试操作步骤文本获得参数;
根据所述测试组件索引遍历所述测试组件相关信息库,获得对应的测试组件相关信息;
将所述参数与所述对应的测试组件相关信息相关联,获得所述测试组件相关信息-参数数据项。
7.根据权利要求1所述的方法,其特征在于,所述根据所述测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码,包括:
根据所述测试组件相关信息-参数序列,检索所述测试组件模板库,获得所述测试组件模板序列;
将所述测试组件相关信息-参数序列的参数依次传入所述测试组件模板序列对应的测试组件模板,整合生成自动化测试代码。
8.根据权利要求1所述的方法,其特征在于,在生成自动化测试代码之后,还包括:
执行所述自动化测试代码。
9.根据权利要求8所述的方法,其特征在于,在执行所述自动化测试代码之后,还包括:
分析所述自动化测试代码的执行结果。
10.一种生成自动化测试代码的装置,其特征在于,包括:
获取单元,用于获取测试文本案例,所述测试文本案例是基于待测试内容生成描述测试操作步骤并符合编写规范的文本案例,所述编写规范包括操作对象、对象标识和对象操作内容数据项;
解析单元,用于解析所述测试文本案例,获得测试文本队列,所述测试文本队列是按照所述测试操作步骤排列的;
获得单元,用于根据所述测试文本队列、关键字-测试组件索引映射关系库和测试组件相关信息库,获得目标测试组件相关信息-参数序列;
生成单元,用于根据所述测试组件相关信息-参数序列和测试组件模板库,生成自动化测试代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810457299.1A CN108710571B (zh) | 2018-05-14 | 2018-05-14 | 一种生成自动化测试代码的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810457299.1A CN108710571B (zh) | 2018-05-14 | 2018-05-14 | 一种生成自动化测试代码的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108710571A true CN108710571A (zh) | 2018-10-26 |
CN108710571B CN108710571B (zh) | 2021-11-23 |
Family
ID=63868183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810457299.1A Active CN108710571B (zh) | 2018-05-14 | 2018-05-14 | 一种生成自动化测试代码的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108710571B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111239626A (zh) * | 2020-01-21 | 2020-06-05 | 福建时代星云科技有限公司 | 一种自动生成汽车电池快速检测方案的方法 |
CN111881042A (zh) * | 2020-07-27 | 2020-11-03 | 云账户技术(天津)有限公司 | 自动化测试脚本的生成方法、装置和电子设备 |
CN112579465A (zh) * | 2020-12-25 | 2021-03-30 | 中国农业银行股份有限公司 | 一种测试案例执行方法、装置、存储介质和设备 |
CN112597025A (zh) * | 2020-12-25 | 2021-04-02 | 中国农业银行股份有限公司 | 一种测试案例生成方法及装置 |
CN113822046A (zh) * | 2021-09-29 | 2021-12-21 | 平安银行股份有限公司 | 基于cucumber测试案例的解析方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202339542U (zh) * | 2011-03-21 | 2012-07-18 | 中国工商银行股份有限公司 | 一种软件产品测试系统 |
CN102609357A (zh) * | 2012-02-17 | 2012-07-25 | 浙江大学 | 符合autosar标准自动化测试的测试案例动态构建方法 |
CN107506303A (zh) * | 2017-08-24 | 2017-12-22 | 航天中认软件测评科技(北京)有限责任公司 | 用于自动化测试的方法、装置及系统 |
-
2018
- 2018-05-14 CN CN201810457299.1A patent/CN108710571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202339542U (zh) * | 2011-03-21 | 2012-07-18 | 中国工商银行股份有限公司 | 一种软件产品测试系统 |
CN102609357A (zh) * | 2012-02-17 | 2012-07-25 | 浙江大学 | 符合autosar标准自动化测试的测试案例动态构建方法 |
CN107506303A (zh) * | 2017-08-24 | 2017-12-22 | 航天中认软件测评科技(北京)有限责任公司 | 用于自动化测试的方法、装置及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111239626A (zh) * | 2020-01-21 | 2020-06-05 | 福建时代星云科技有限公司 | 一种自动生成汽车电池快速检测方案的方法 |
CN111239626B (zh) * | 2020-01-21 | 2022-06-14 | 福建时代星云科技有限公司 | 一种自动生成汽车电池快速检测方案的方法 |
CN111881042A (zh) * | 2020-07-27 | 2020-11-03 | 云账户技术(天津)有限公司 | 自动化测试脚本的生成方法、装置和电子设备 |
CN112579465A (zh) * | 2020-12-25 | 2021-03-30 | 中国农业银行股份有限公司 | 一种测试案例执行方法、装置、存储介质和设备 |
CN112597025A (zh) * | 2020-12-25 | 2021-04-02 | 中国农业银行股份有限公司 | 一种测试案例生成方法及装置 |
CN113822046A (zh) * | 2021-09-29 | 2021-12-21 | 平安银行股份有限公司 | 基于cucumber测试案例的解析方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108710571B (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698702B1 (en) | Automating interactions with software user interface | |
CN108710571A (zh) | 一种生成自动化测试代码的方法和装置 | |
Scheller et al. | Automated measurement of API usability: The API concepts framework | |
US8984485B2 (en) | Analysis of source code changes | |
CN106557413A (zh) | 基于代码覆盖率获取测试用例的方法和设备 | |
CN104715203B (zh) | 信息泄漏漏洞的定量分析的方法和系统 | |
Bento et al. | Automated analysis of distributed tracing: Challenges and research directions | |
US8904352B2 (en) | Systems and methods for processing source code during debugging operations | |
US8799859B2 (en) | Augmented design structure matrix visualizations for software system analysis | |
US9417991B2 (en) | Translation verification testing | |
US10509719B2 (en) | Automatic regression identification | |
US11074162B2 (en) | System and a method for automated script generation for application testing | |
JP5377534B2 (ja) | Gui要素を識別する方法、装置およびシステム | |
US11436133B2 (en) | Comparable user interface object identifications | |
CN109408385A (zh) | 一种基于缺陷规则和分类反馈的缺陷发现方法 | |
US11526429B1 (en) | Identifying critical methods and critical paths in software code | |
US8510714B2 (en) | Implementing integrated documentation and application testing | |
Walunj et al. | Graphevo: Characterizing and understanding software evolution using call graphs | |
US20240086165A1 (en) | Systems and methods for building and deploying machine learning applications | |
Aljawabrah et al. | Automated recovery and visualization of test-to-code traceability (TCT) links: An evaluation | |
Darab et al. | Black-box test data generation for gui testing | |
CN115686467A (zh) | 动态语言中的类型推断 | |
Arcelli et al. | Design pattern detection in java systems: A dynamic analysis based approach | |
Narkhede et al. | An industrial research on GUI testing techniques for windows based application using UFT | |
Aparna et al. | Building a common notation for enabling comparison of design and execution |
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 |