CN113900958A - 测试用例脚本的生成方法、***、介质及电子设备 - Google Patents
测试用例脚本的生成方法、***、介质及电子设备 Download PDFInfo
- Publication number
- CN113900958A CN113900958A CN202111280146.2A CN202111280146A CN113900958A CN 113900958 A CN113900958 A CN 113900958A CN 202111280146 A CN202111280146 A CN 202111280146A CN 113900958 A CN113900958 A CN 113900958A
- Authority
- CN
- China
- Prior art keywords
- stream
- test case
- unified
- description information
- test
- 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
Images
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
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)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及软件测试领域,揭示了一种测试用例脚本的生成方法、***、计算机可读介质及电子设备。该方法包括:获取Rest API定义文档,并对Rest API定义文档进行解析,得到元素和参数格式信息;输出图形流可视化编辑页面;根据从图形流可视化编辑页面的组件中选择的目标组件,显示目标组件,并获取与各目标组件对应的参数数据;根据接收到的交互指令,在图形流可视化编辑页面中绘制图形流;获取与图形流对应的图形流数据,并将参数数据和图形流数据作为图形流编辑数据;将图形流编辑数据转换为统一用例描述信息;将统一用例描述信息转换为测试用例脚本。此方法降低了软件测试的学习门槛,提升了软件评测效率,还解决了不同测试引擎环境的脚本不兼容问题。
Description
技术领域
本申请涉及软件测试技术领域,特别涉及一种测试用例脚本的生成方法、***、计算机可读介质及电子设备。
背景技术
目前,大部分上线***遵循Rest API规范开发,采用前后端分离架构,通过json格式交换数据。因此,大部分常规的测试用例编写需要了解具体Rest API请求的出入参格式,然后使用自动化测试框架特定的语法或工具生成测试用例。
然而,该生成测试用例的方案依然存在使用测试框架需要一定的学习门槛、了解Rest API请求出入参格式所需时间成本高、复杂的测试用例的逻辑难以理解且排错困难等缺陷。
发明内容
在软件测试技术领域,为了解决上述技术问题,本申请的目的在于提供一种测试用例脚本的生成方法、***、计算机可读介质及电子设备。
根据本申请实施例的一个方面,提供了一种测试用例脚本的生成方法,所述方法包括:
获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息;
输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件;
根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据;
根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系;
获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据;
根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息;
将所述统一用例描述信息转换为测试用例脚本。
根据本申请实施例的一个方面,提供了一种测试用例脚本的生成***,所述***包括:
Rest API分析模块,用于获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息;
前端图形流编辑模块,用于输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件,其中,所述前端图形流编辑模块进一步用于:
根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据;
根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系;以及
获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据;
统一用例描述转换模块,用于根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息;
适配与转换模块,用于将所述统一用例描述信息转换为测试用例脚本。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请所提供的测试用例脚本的生成方法包括如下步骤:获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息;输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件;根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据;根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系;获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据;根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息;将所述统一用例描述信息转换为测试用例脚本。
此方法下,一方面,用户可以通过图形流以可视化的方式来编辑测试用例,在编辑完成后可以自动转换为测试用例脚本,简单直观,易于理解,操作便捷,对测试人员的脚本能力要求大大降低,大大降低了学习门槛;另一方面,在编辑测试用例只需要提供参数数据,而参数数据是根据参数格式信息进行设置的,参数格式信息是通过解析Rest API定义文档得到的,因此可以规范参数数据,从而可以减少出错几率,提升软件评测效率;此外,整个方案通过统一用例描述信息自动生成测试用例脚本,测试用例脚本可以在实际测试引擎中执行,这样实现了测试用例编写与具体测试引擎的解耦,解决了不同测试引擎环境的脚本不兼容问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种测试用例脚本的生成方法的***架构示意图;
图2是根据一示例性实施例示出的一种测试用例脚本的生成方法的流程图;
图3是根据一示例性实施例示出的图形流可视化编辑页面的示意图;
图4是根据一示例性实施例示出的参数数据获取页面的示意图;
图5是根据一示例性实施例示出的测试用例脚本在测试引擎中的显示方式示意图;
图6是根据一示例性实施例示出的一种测试用例脚本的生成***的框图;
图7是根据一示例性实施例示出的一种基于测试用例脚本的生成***生成脚本的流程示意图;
图8示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
编写测试用例作为软件评测流程的主要工作,测试用例编写的效率、质量和正确性除了与测试人员自身能力有关外,还与测试用例的生成工具有很大关系。在相关技术中,在利用jmeter、robotframework等现有的工具编写测试用例时,调用Rest API时不能校验请求的路径、方式和参数是否正确;且缺乏一种直观的方式来描述测试用例中各个元素之间的关系;此外,测试工具还需要安装到本地后才能使用。
为此,本申请首先提供了一种测试用例脚本的生成方法,可以克服以上缺陷,只需在联网环境中即可在页面编写测试用例,方便了测试人员了解整个测试用例的逻辑结构,提高了测试用例编写的效率、质量以及正确性,进而大大提高了软件评测工作流程的效率。
本申请的实施终端可以是任何具有运算、处理以及通信功能的设备,该设备可以与外部设备相连,用于接收或者发送数据,具体可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、PDA(Personal Digital Assistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施或者服务器集群。
可选地,本申请的实施终端可以为服务器或者云计算的物理基础设施。
图1是根据一示例性实施例示出的一种测试用例脚本的生成方法的***架构示意图。如图1所示,该***架构100包括终端设备、网络104以及服务器105,其中,终端设备具体可以包括台式计算机101、智能手机102以及笔记本电脑103,各终端设备分别通过网络104与服务器110相连,从而实现终端设备与服务器110之间的交互。服务器110为本申请实施例的实施终端,其上部署有测试用例脚本的生成***,当本申请提供的一种测试用例脚本的生成方法应用于图1所示的***架构中时,一个过程可以如下所示:首先,笔记本电脑103的用户通过网络104向服务器110发送Rest API定义文档,笔记本电脑103的用户可以为RestAPI的开发人员;接着,服务器110在获得了Rest API定义文档之后,对其进行解析,从而得到元素和对应的参数格式信息;然后,服务器110输出包括元素对应的组件的图形流可视化编辑页面,并根据终端设备的请求向终端设备返回该图形流可视化编辑页面;接着,终端设备的用户通过该图形流可视化编辑页面与测试用例脚本的生成***进行交互,用户可以在图形流可视化编辑页面上进行目标组件的选择,并通过连线绘制图形流,还可以通过该页面提交目标组件对应的参数数据,这样,就使服务器110获得了包括参数数据和图形流数据的图形流编辑数据;最后,服务器110将图形流编辑数据转换为统一用例描述信息,并将统一用例描述信息转换为测试用例脚本。
在本申请的一个实施例中,服务器110还部署有测试引擎,服务器110将生成的测试用例脚本输出至测试引擎能够读取的指定目录下。
在本申请的一个实施例中,台式计算机101和智能手机102上部署有测试引擎,服务器110在输出测试用例脚本之后,生成用于下载测试用例脚本的链接并将该链接发送至台式计算机101和智能手机102,台式计算机101和智能手机102可以通过获得的链接下载测试用例脚本,并通过执行测试用例脚本完成测试。
值得一提的是,图1仅为本申请的一个实施例,虽然在图1实施例中,Rest API定义文档是由终端设备提交至实施终端的,但在其他实施例或者具体应用时,Rest API定义文档还可以在实施终端的本地创建和编写;虽然在图1实施例中,与测试用例脚本的生成***进行交互的终端与实施终端为不同的终端,但在本申请的其他实施例中,与测试用例脚本的生成***进行交互的终端与实施终端还可以为同一终端。本申请实施例对此不作任何限定,本申请的保护范围也不应因此而受到任何限制。
图2是根据一示例性实施例示出的一种测试用例脚本的生成方法的流程图。在物理上,本实施例提供的测试用例脚本的生成方法可以由服务器执行;在逻辑上,本实施例提供的测试用例脚本的生成方法可以测试用例脚本的生成***执行,如图2所示,可以包括以下步骤:
步骤210,获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息。
Rest API定义文档(具体可以为OpenAPI规范文档)可以由开发人员编写,其定义了Rest API的编写规范。Rest API也可以称为RESTFUL API,即基于Rest(Representational State Transfer,表现层状态转移)技术建立的API(ApplicationProgramming Interface,应用程序接口)。RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。
因此,基于本申请实施例的方案生成的测试用例脚本实际上可以实现接口测试。
可以从测试人员的终端获取Rest API定义文档,还可以从数据库等其他位置获取Rest API定义文档。
对Rest API定义文档进行解析,可以得到HTTP请求、响应断言、分支等元素。对于一个元素而言,不仅可以解析到与其对应的参数格式信息,还可以解析其他规范信息。比如,对于HTTP请求这一元素,可以通过对Rest API定义文档进行解析提取出请求路径、请求方式、头信息、出入参格式等信息。
在本申请的一个实施例中,所述获取Rest API定义文档,包括:通过页面或者接口方式获取提交的Rest API定义文档。
具体地,开发人员在访问测试用例脚本的生成***时,可以通过点击访问页面上的控件提交Rest API定义文档。测试用例脚本的生成***还可以向外提供接口,通过调用该接口可以提交Rest API定义文档。
参数格式信息定义了调用Rest API所需提供的参数数据的规范。
步骤220,输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件。
图形流可视化编辑页面可以是Web页面。用户端(如测试人员的终端)通过进行页面访问,可以接收到输出的图形流可视化编辑页面。
在本申请的一个实施例中,所述组件包括HTTP请求、响应断言和分支。
如前所述,元素可以是HTTP请求、响应断言、分支等对象,因此,元素对应的组件可以是HTTP请求、响应断言、分支等组件。易于理解,元素的类型可以是多种多样的,可以不限于以上的这些。
步骤230,根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据。
用户端可以图形流可视化编辑页面与***进行交互,实现对图形流的编辑。选择的目标组件是用于建立图形流的组件。
在本申请的一个实施例中,所述获取与各所述目标组件的参数格式信息对应的参数数据,包括:根据参数格式信息对相应的参数数据进行校验。
在本申请实施例中,通过基于参数格式信息对参数数据进行校验,使得提供的参数数据是合法的,从而能够确保测试的准确性。
与参数格式信息对应的参数数据可以通过从列表中选择的方式获得。
在本申请的一个实施例中,所述获取与各所述目标组件的参数格式信息对应的参数数据,包括:提供包括与参数格式信息对应的多个标准参数数据的列表控件,以便通过所述列表控件获取从所述多个标准参数数据中选择的参数数据。
在本申请实施例中,通过以列表控件的方式获取参数数据,而列表控件中的标准参数数据通过根据参数格式信息设定的合法参数数据,这样就使得获取的参数数据是合法的,从而能够保证测试的准确性。
图3是根据一示例性实施例示出的图形流可视化编辑页面的示意图。请参见图3所示,图形流可视化编辑页面包括左右两个区域,左侧区域为组件区,其可以包括HTTP请求、响应断言、分支等多个组件,其中,if()即为分支组件,可以在组件区中选择目标组件;右侧区域为编辑区,可以显示目标组件,在图3的编辑区中,HTTP代表HTTP组件,断言结果可以为响应断言组件,断言成功和断言失败所对应的两条分支可以为分支组件;通过右侧区域还可以对显示的目标组件进行编辑操作,从而获取对应的参数数据。
步骤240,根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系。
图形流实际上是目标组件之间的可视化逻辑关系图,其中记录着测试用例逻辑。
在本申请的一个实施例中,所述图形流可视化编辑页面包括第一区域和第二区域,所述根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据,包括:
根据接收到的拖拽指令,将从第一区域显示的组件中选择的目标组件移动至第二区域,并在所述第二区域中显示所述目标组件;
根据接收到对目标组件的编辑指令,输出参数数据获取页面,并通过所述参数数据获取页面获取与各所述目标组件的参数格式信息对应的参数数据;
所述根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,包括:
根据通过所述第二区域接收到的交互指令,在所述第二区域中绘制图形流。
请继续参见图3,此处的第一区域可以为图3中的左侧区域,第二区域可以为图3中的右侧区域。用户可以在第一区域对目标组件进行选择操作(如点击操作),然后将选择的目标组件拖拽至右侧的第二区域,此时第二区域就会显示拖拽过来的目标组件。用户还可以对第二区域中的目标组件进行编辑操作。具体来说,用户可以通过对目标组件执行双击、右键等特定操作,进入参数数据获取页面,从而提供对应的参数数据。用户可以通过在第二区域中的目标组件之间绘制连线,从而形成图形流。
参数数据获取页面实际上是一个组件编辑页面,通过该参数数据获取页面可以填充进行测试所需的数据。在一个参数数据获取页面中,可以仅获取一个目标组件的参数数据,还可以同时获取多个目标组件的参数数据。
可以在REST API请求组件的参数数据获取页面展示包含了解析到的所有RESTAPI请求的列表,测试人员在列表中选择要测试的REST API请求并填写入参数据,编辑断言信息,比如可以对状态码进行断言,再根据断言结果选择结束流程或发起另外的Rest API请求。
图4是根据一示例性实施例示出的参数数据获取页面的示意图。
请参见图4所示,针对某一REST API请求组件,在与其对应的参数数据获取页面中,可以用于获取API文档、API操作、API方法等可以通过列表选择的参数,还可以用于通过列表选择或者输入等方式获取请求参数、响应断言相关参数、输出参数等。在请求参数部分,用户可以输入API请求头、请求参数和请求体信息;在请求头区域,用户还可以在提供的参照物类型中进行选择,具体可以选择输入参数、全局变量和值,具体选择的参照物类型便可以是参数格式信息,根据选择的参照物类型不同,参照物值的可选取值会发生变化,若参照物类型选择值,则参照物值可接收任意输入。在响应断言部分,还可对请求响应进行断言,选项包括断言方式、断言参数、断言规则、参照物类型和参照值,可以通过选择或输入的方式获取用户提供的响应断言相关参数,断言方式可以选择状态码、响应体等。在输出参数部分,可通过参数数据的配置将响应的信息保存到全局变量中,用于后续的图形流组件中。当用户点击了图4所示页面中的确认按钮之后,便完成了对该REST API请求组件的参数数据的输入。
除此之外,参数数据获取页面中还可以显示通过对Rest API定义文档进行解析而得到的其他信息,比如,可以显示URL等基本信息。
步骤250,获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据。
图形流数据是前端展示的图形流对应的后台数据。
步骤260,根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息。
换而言之,统一用例描述由一种描述测试用例的格式规范定义,该格式规范中会定义各种元素,元素的属性和包含关系。比如,可以定义测试用例、测试步骤、分支断言等。
统一用例描述信息中主要包括测试步骤(即steps数组字段),测试步骤可以包括调用关键字、分支以及循环控制等。同时,还可以包括发送请求、断言、赋值、提取请求结果等内建关键字。
统一用例描述信息的一个示例如下所示:
比如,在上面的示例中,steps可以为测试步骤,http为发送请求关键字,http_assert为断言关键字,http_extract为提取请求结果关键字,"if_true"和"if_false"为测试步骤中的分支。
步骤270,将所述统一用例描述信息转换为测试用例脚本。
在本申请的一个实施例中,所述将所述统一用例描述信息转换为测试用例脚本,包括:将所述统一用例描述信息转换为至少一个指定测试引擎能够执行的测试用例脚本。
可以通过设置对应的插件将统一用例描述信息转换为各指定测试引擎能够执行的测试用例脚本。具体地,指定测试引擎可以是jmeter和robotframework等测试引擎。可以设置jmeter转换插件和robotframework转换插件分别转换为相应的测试用例脚本。
不同的测试引擎所能识别和执行的脚本格式可能是不同的,本申请实施例可以将统一用例描述信息分别转换为各测试引擎所能执行的脚本,实现了测试用例脚本编写与测试引擎的隔离和解耦,可以更灵活地生成不同测试引擎的脚本,适用性更强。
在本申请的一个实施例中,所述统一用例描述信息包括自定义函数,所述将所述统一用例描述信息转换为至少一个指定测试引擎能够执行的测试用例脚本,包括:将所述统一用例描述信息中的自定义函数封装为相应指定测试引擎能够识别的元素。
具体来说,在统一用例描述信息中可以创建自定义函数,将重复出现的测试步骤封装到函数中。例如,在jmeter转换插件中,可以将自定义函数使用jmeter能够识别的TestFragment元素进行封装。
在本申请的一个实施例中,所述方法还包括:获取的元素自定义代码;所述将所述图形流编辑数据转换为统一用例描述信息,包括:将所述图形流编辑数据和所述元素自定义代码转换为统一用例描述信息。
例如,测试人员可以通过java代码实现jmeter自定义Java Request元素,然后在统一用例描述中进行引用。
在本申请实施例中,统一用例描述保留了一定的可扩展性,对于强编码能力的测试人员,可以通过创建自定义关键字实现复杂测试逻辑。
在本申请的一个实施例中,在将所述统一用例描述信息转换为测试用例脚本之后,所述方法还包括:通过执行所述测试用例脚本进行接口测试。
如前所述,元素和参数格式信息是通过对Rest API定义文档进行解析得到的,因此,图形流编辑数据和统一用例描述信息也是与接口对应的,基于此,最终生成的测试用例脚本可用于进行接口测试。
在本申请的一个实施例中,在将所述统一用例描述信息转换为至少一个指定测试引擎能够执行的测试用例脚本之后,所述将所述统一用例描述信息转换为测试用例脚本还包括:将所述测试用例脚本输出至相应指定测试引擎的读取目录下。
在本申请实施例中,通过将测试用例脚本直接输出至相应指定测试引擎的读取目录下,使得指定测试引擎可以直接执行测试用例脚本进行测试,提高了测试效率。
图5是根据一示例性实施例示出的测试用例脚本在测试引擎中的显示方式示意图。在生成jmeter脚本格式的测试用例脚本,并将测试用例脚本导入jmeter测试引擎中之后,各个元素将在jmeter测试引擎的显示界面中显示为图5中左侧树状结构中的节点。
综上所述,通过本申请实施例提供的测试用例脚本的生成方法,可以以图形流方式在线生成Rest API测试用例脚本,只需在联网环境中即可在页面编写测试用例,使得测试人员能够直观了解整个测试用例的逻辑结构,还利用Rest API定义文档辅助编辑测试用例,提高了测试用例编写的效率、质量以及正确性;同时,本申请实施例还将测试用例编写与具体测试引擎解耦,解决了不同测试引擎环境的脚本不兼容问题。
根据本申请的另一方面,本申请还提供了一种测试用例脚本的生成***,以下是本申请的***实施例。
图6是根据一示例性实施例示出的一种测试用例脚本的生成***的框图。
如图6所示,测试用例脚本的生成***600包括:
Rest API分析模块610,用于获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息。
Rest API分析模块能够对获取到的Rest API定义文档进行正确性分析,并将RestAPI定义文档保存在测试用例脚本的生成***。
Rest API分析模块向前端图形流编辑模块提供了访问接口,使得前端图形流编辑模块能够获得Rest API分析模块的解析结果。
前端图形流编辑模块620,用于输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件,其中,所述前端图形流编辑模块进一步用于:
根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据;
根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系;以及
获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据。
前端图形流编辑模块提供图形流可视化编辑页面,页面提供Rest API、断言和分支等元素,测试人员通过编辑各元素并通过连线的方式组合编辑页面中的元素,从而形成测试用例。在编辑Rest API元素时,页面会展示已经导入的Rest API,通过选择不同的RestAPI,页面会展示不同的参数让测试人员填写。
统一用例描述转换模块630,用于根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息。
适配与转换模块640,用于将所述统一用例描述信息转换为测试用例脚本。
适配与转换模块可使用Java、python、golang等编程语言进行开发,适配与转换模块能够对统一用例描述信息进行遍历,将统一用例描述信息转换为测试引擎能够识别的格式的可执行脚本文件。适配与转换模块可以包括与各测试引擎对应的转换插件,通过转换插件将统一用例描述信息转换为测试用例脚本。具体地,适配与转换模块可以包括jmeter转换插件和robotframework转换插件,在转换插件中定义并实现相应的转换接口,可以通过转换接口实现将统一用例描述信息转换为测试用例脚本。比如,对于robotframework格式脚本熟悉的人员可以实现上述转换接口,通过调用该转换接口能够将统一用例描述信息转换为robotframework这一测试引擎能够执行的脚本,从而可以提供robotframework转换插件。
图7是根据一示例性实施例示出的一种基于测试用例脚本的生成***生成脚本的流程示意图。如图7所示,具体包括以下流程:首先,将Rest API文档导入至Rest API分析模块,由Rest API分析模块对其进行解析;接着,Rest API分析模块将解析结果发送至前端图形流编辑模块;然后,用户可以通过前端图形流编辑模块进行编辑操作,从而建立图形流测试用例;接下来,将图形流测试用例发送至统一用例描述转换模块,由统一用例描述转换模块将图形流测试用例转换为统一用例描述;然后,将统一用例描述发送至适配与转换模块,由适配与转换模块将统一用例描述转换为测试用例脚本;最后,测试框架执行测试用例脚本。
根据本申请的另一方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为***、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
图8示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
需要说明的是,图8示出的电子设备的计算机***800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(Central Processing Unit,CPU)801,其可以根据存储在只读存储器(Read-Only Memory,ROM)802中的程序或者从存储部分808加载到随机访问存储器(Random Access Memory,RAM)803中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 803中,还存储有***操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(Input/Output,I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的***中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种测试用例脚本的生成方法,其特征在于,所述方法包括:
获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息;
输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件;
根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据;
根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系;
获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据;
根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息;
将所述统一用例描述信息转换为测试用例脚本。
2.根据权利要求1所述的方法,其特征在于,所述将所述统一用例描述信息转换为测试用例脚本,包括:
将所述统一用例描述信息转换为至少一个指定测试引擎能够执行的测试用例脚本。
3.根据权利要求2所述的方法,其特征在于,在将所述统一用例描述信息转换为至少一个指定测试引擎能够执行的测试用例脚本之后,所述将所述统一用例描述信息转换为测试用例脚本还包括:
将所述测试用例脚本输出至相应指定测试引擎的读取目录下。
4.根据权利要求2所述的方法,其特征在于,所述统一用例描述信息包括自定义函数,所述将所述统一用例描述信息转换为至少一个指定测试引擎能够执行的测试用例脚本,包括:
将所述统一用例描述信息中的自定义函数封装为相应指定测试引擎能够识别的元素。
5.根据权利要求1所述的方法,其特征在于,所述组件包括HTTP请求、响应断言和分支。
6.根据权利要求1所述的方法,其特征在于,所述获取Rest API定义文档,包括:
通过页面或者接口方式获取提交的Rest API定义文档。
7.根据权利要求1所述的方法,其特征在于,所述图形流可视化编辑页面包括第一区域和第二区域,所述根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据,包括:
根据接收到的拖拽指令,将从第一区域显示的组件中选择的目标组件移动至第二区域,并在所述第二区域中显示所述目标组件;
根据接收到对目标组件的编辑指令,输出参数数据获取页面,并通过所述参数数据获取页面获取与各所述目标组件的参数格式信息对应的参数数据;
所述根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,包括:
根据通过所述第二区域接收到的交互指令,在所述第二区域中绘制图形流。
8.一种测试用例脚本的生成***,其特征在于,所述***包括:
Rest API分析模块,用于获取Rest API定义文档,并对所述Rest API定义文档进行解析,得到元素和与所述元素对应的参数格式信息;
前端图形流编辑模块,用于输出图形流可视化编辑页面,所述图形流可视化编辑页面包括所述元素对应的组件,其中,所述前端图形流编辑模块进一步用于:
根据从所述图形流可视化编辑页面的所述组件中选择的目标组件,显示所述目标组件,并获取与各所述目标组件的参数格式信息对应的参数数据;
根据接收到的交互指令,在所述图形流可视化编辑页面中绘制图形流,所述图形流用于表示所述目标组件之间的逻辑关系;以及
获取与所述图形流对应的图形流数据,并将所述参数数据和所述图形流数据作为图形流编辑数据;
统一用例描述转换模块,用于根据描述测试用例的格式规范,将所述图形流编辑数据转换为统一用例描述信息;
适配与转换模块,用于将所述统一用例描述信息转换为测试用例脚本。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280146.2A CN113900958A (zh) | 2021-10-29 | 2021-10-29 | 测试用例脚本的生成方法、***、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280146.2A CN113900958A (zh) | 2021-10-29 | 2021-10-29 | 测试用例脚本的生成方法、***、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113900958A true CN113900958A (zh) | 2022-01-07 |
Family
ID=79027708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111280146.2A Pending CN113900958A (zh) | 2021-10-29 | 2021-10-29 | 测试用例脚本的生成方法、***、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900958A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114518906A (zh) * | 2022-01-25 | 2022-05-20 | 厦门锐谷通信设备有限公司 | 一种基于xml描述文件的设备配置参数管理***及方法 |
CN114968219A (zh) * | 2022-05-09 | 2022-08-30 | 中国三峡建工(集团)有限公司 | 一种基于可视化拖拽式逻辑分析脚本的构建方法 |
CN116088825A (zh) * | 2023-04-03 | 2023-05-09 | 广东省信息工程有限公司 | 一种脚本生成方法、可视化编辑器以及存储介质 |
CN116127926A (zh) * | 2023-04-17 | 2023-05-16 | 英创互联(北京)科技有限公司 | 生成数据体的xslt文件的方法、装置、设备及介质 |
CN116431135A (zh) * | 2023-06-12 | 2023-07-14 | 江西五十铃汽车有限公司 | 汽车代码编写方法、***、计算机及可读存储介质 |
CN116521572A (zh) * | 2023-07-03 | 2023-08-01 | 天津金城银行股份有限公司 | 网页脚本可视化验证方法、***、终端设备和存储介质 |
CN116991706A (zh) * | 2023-06-21 | 2023-11-03 | 广州汽车集团股份有限公司 | 车辆自动化测试方法、装置、设备及存储介质 |
CN117032536A (zh) * | 2023-09-04 | 2023-11-10 | 镁佳(北京)科技有限公司 | 一种快速构建otx诊断序列的方法及装置 |
CN118041813A (zh) * | 2024-04-11 | 2024-05-14 | 深圳市迈腾电子有限公司 | 信号测试脚本数据构建方法、装置、电子设备与可读介质 |
CN118041813B (zh) * | 2024-04-11 | 2024-07-02 | 深圳市迈腾电子有限公司 | 信号测试脚本数据构建方法、装置、电子设备与可读介质 |
-
2021
- 2021-10-29 CN CN202111280146.2A patent/CN113900958A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114518906A (zh) * | 2022-01-25 | 2022-05-20 | 厦门锐谷通信设备有限公司 | 一种基于xml描述文件的设备配置参数管理***及方法 |
CN114518906B (zh) * | 2022-01-25 | 2024-05-14 | 厦门锐谷通信设备有限公司 | 一种基于xml描述文件的设备配置参数管理***及方法 |
CN114968219A (zh) * | 2022-05-09 | 2022-08-30 | 中国三峡建工(集团)有限公司 | 一种基于可视化拖拽式逻辑分析脚本的构建方法 |
CN116088825A (zh) * | 2023-04-03 | 2023-05-09 | 广东省信息工程有限公司 | 一种脚本生成方法、可视化编辑器以及存储介质 |
CN116127926B (zh) * | 2023-04-17 | 2023-08-04 | 英创互联(北京)科技有限公司 | 生成数据体的xslt文件的方法、装置、设备及介质 |
CN116127926A (zh) * | 2023-04-17 | 2023-05-16 | 英创互联(北京)科技有限公司 | 生成数据体的xslt文件的方法、装置、设备及介质 |
CN116431135A (zh) * | 2023-06-12 | 2023-07-14 | 江西五十铃汽车有限公司 | 汽车代码编写方法、***、计算机及可读存储介质 |
CN116431135B (zh) * | 2023-06-12 | 2023-09-22 | 江西五十铃汽车有限公司 | 汽车代码编写方法、***、计算机及可读存储介质 |
CN116991706A (zh) * | 2023-06-21 | 2023-11-03 | 广州汽车集团股份有限公司 | 车辆自动化测试方法、装置、设备及存储介质 |
CN116991706B (zh) * | 2023-06-21 | 2024-04-19 | 广州汽车集团股份有限公司 | 车辆自动化测试方法、装置、设备及存储介质 |
CN116521572A (zh) * | 2023-07-03 | 2023-08-01 | 天津金城银行股份有限公司 | 网页脚本可视化验证方法、***、终端设备和存储介质 |
CN116521572B (zh) * | 2023-07-03 | 2023-09-19 | 天津金城银行股份有限公司 | 网页脚本可视化验证方法、***、终端设备和存储介质 |
CN117032536A (zh) * | 2023-09-04 | 2023-11-10 | 镁佳(北京)科技有限公司 | 一种快速构建otx诊断序列的方法及装置 |
CN118041813A (zh) * | 2024-04-11 | 2024-05-14 | 深圳市迈腾电子有限公司 | 信号测试脚本数据构建方法、装置、电子设备与可读介质 |
CN118041813B (zh) * | 2024-04-11 | 2024-07-02 | 深圳市迈腾电子有限公司 | 信号测试脚本数据构建方法、装置、电子设备与可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422778B2 (en) | Development environment for real-time dataflow programming language | |
CN113900958A (zh) | 测试用例脚本的生成方法、***、介质及电子设备 | |
US10108535B2 (en) | Web application test script generation to test software functionality | |
CN110543297B (zh) | 用于生成源码的方法和装置 | |
CN110716853A (zh) | 一种测试脚本录制方法、应用程序测试方法和相关装置 | |
CN112732576B (zh) | 基于用户界面的自动化测试方法、装置及设备 | |
CN111309317A (zh) | 一种实现数据可视化的代码自动化方法和装置 | |
CN111694561A (zh) | 一种接口管理方法、装置、设备及存储介质 | |
CN111666201A (zh) | 回归测试方法、装置、介质及电子设备 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN113836014A (zh) | 一种接口测试方法、装置、电子设备和存储介质 | |
US20160292067A1 (en) | System and method for keyword based testing of custom components | |
CN117632710A (zh) | 测试代码的生成方法、装置、设备及存储介质 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
CN114238128A (zh) | 测试用例生成方法、装置、电子设备及计算机可读介质 | |
CN113051173B (zh) | 测试流程的编排执行方法、装置、计算机设备和存储介质 | |
CN115421770A (zh) | 资源信息的处理方法及装置、存储介质、电子设备 | |
CN111176624B (zh) | 一种流式计算指标的生成方法及装置 | |
CN113377648A (zh) | 软件***诊断方法、装置、电子设备及计算机可读介质 | |
CN114416210B (zh) | 一种决策流仿真方法、装置、介质和设备 | |
CN116069312A (zh) | 页面渲染方法及装置、电子设备和计算机可读存储介质 | |
CN116974882A (zh) | 接口测试方法及相关装置 | |
CN118261143A (zh) | Unity环境下的Json数据解析方法、装置、设备及介质 | |
CN118193390A (zh) | 一种sql语句检测方法、装置、电子设备及存储介质 | |
CN113326188A (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 |