CN116648689A - 生成自动化脚本的方法和装置 - Google Patents
生成自动化脚本的方法和装置 Download PDFInfo
- Publication number
- CN116648689A CN116648689A CN202180033485.2A CN202180033485A CN116648689A CN 116648689 A CN116648689 A CN 116648689A CN 202180033485 A CN202180033485 A CN 202180033485A CN 116648689 A CN116648689 A CN 116648689A
- Authority
- CN
- China
- Prior art keywords
- automation script
- item
- data
- function
- script
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种生成自动化脚本的方法,该方法包括:获取用户界面中的至少一个第一待设置的项目和用户在至少一个第一待设置的项目中输入的数据;根据至少一个第一待设置的项目确定至少一个第一自动化脚本模板,至少一个第一自动化脚本模板中包括待设置的数据;根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本。本申请实施例的生成自动化脚本的方法根据用户在用户界面输入的数据和预设的自动化脚本模板生成对应的自动化脚本,避免人工编写,节省人力。
Description
本申请涉及测试技术领域,并且更具体地,涉及一种生成自动化脚本的方法和装置。
硬件在环(hardware in the loop,HIL)是一种用于复杂设备控制器的开发与测试的技术,通过HIL测试,机器或系统的物理部分被仿真器所替代。HIL具有丰富的测试功能和较高的安全性,在车辆研发过程中具有广泛的应用,例如,在车辆驾驶测试中,天气、驾驶风格、路线细节和复杂的极限工况等都可以在HIL测试中模拟仿真出,同时也可以避免测试人员和车辆部件处于不必要的危险测试条件中。
为了保证测试的充分性和完备性,往往需要大量的测试用例,测试用例是为了实施测试而向测试系统提供的输入数据、操作、环境设置和期望结果的特定集合,自动化脚本是为了进行测试而编写的脚本,本质是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行,自动化脚本的编写必须对应相应的测试用例。
在现有的生成自动化脚本的方法中,通常是先根据测试需要创建测试用例,然后使用python或lua等脚本语言编写出对应的自动化脚本,在测试时运行自动化脚本完成相应的测试。由于HIL等测试涉及大量测试用例,人工编写工作量巨大,且测试用例的代码重复内容较多,编写过程机械而枯燥。
发明内容
本申请提供一种生成自动化脚本的方法和装置,该方法根据用户在用户界面输入的数据和预设的自动化脚本模板生成对应的自动化脚本,避免人工编写,节省人力。
第一方面,提供了一种生成自动化脚本的方法,该方法包括:获取用户界面中的至少一个第一待设置的项目和用户在至少一个第一待设置的项目中输入的数据;根据至少一个第一待设置的项目确定至少一个第一自动化脚本模板,至少一个第一自动化脚本模板中包括待设置的数据;根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本。
本申请实施例的生成自动化脚本的方法根据用户在用户界面输入的待设置项目的数据和预设的自动化脚本模板生成待设置项目对应的自动化脚本,避免人工编写,节省人力,且摒弃了现有技术中的数据库,无需根据数据库中的待设置项目的数据转换为自动化脚本,实现了架构的轻量级。
此外,对于测试用例来说,这里的待设置的项目可以是一个完整的测试用例,也可以是一个测试用例的一个部分。待设置的项目中可以包括固定的数据,固定的数据无需用户输入,也可以包括待输入的数据,需要由用户以填空或选择的方式输入。
结合第一方面,在第一方面的某些实现方式中,一个第一自动化脚本模板对应于一个 第一待设置的项目,或者一个第一自动化脚本模板对应于多个第一待设置的项目。
本申请实施例中,自动化脚本模板主要表现为一种格式,因此可以为每个待设置项目分别设置相应的自动化脚本模板,或者,当待设置项目具有相似的格式时,多个相似格式的待设置项目也可以使用同一个自动化脚本模板。
结合第一方面,在第一方面的某些实现方式中,用户在至少一个第一待设置的项目中输入的数据包括一个或多个操作和一个或多个操作对应的参数,根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本,包括:根据一个或多个操作和一个或多个操作对应的参数确定预设功能函数的参数,预设功能函数和预设功能函数的参数为至少一个第一自动化脚本模板中的待设置的数据;将预设功能函数、预设功能函数的参数填入至少一个第一自动化脚本模板得到第一自动化脚本。
本申请实施例中,每个操作均具有相应的功能函数,该功能函数为开发人员预先设置,在实际应用中,每个操作对应的功能函数可以相同,也可以不同,优选地,如果每个操作对应的功能函数相同,则可以为每个操作执行相同的前置操作,便于统一管理。每个操作的前置操作实际对应一系列代码,本申请实施例将一系列代码封装为功能函数。然后根据一个或多个操作和其对应的参数确定该一个或多个操作对应的功能函数的参数,其中,每个操作的具体执行代码也被封装为对应的函数,以作为功能函数的参数,而操作对应的参数也被转换为功能函数的参数,用于确定操作的具体执行程度。将每个操作的前置操作封装为功能函数,而操作的具体执行和其参数作为功能函数的参数,使得用户界面上的操作步骤与自动化脚本中的操作步骤在数量和顺序上可以保持一致,而功能函数对应的一系列代码为底层逻辑实现。
结合第一方面,在第一方面的某些实现方式中,当不同待设置项目包括相同操作时,相同操作对应的功能函数相同。
本申请实施例中,由于将操作对应的一系列代码封装为功能函数,因此对于相同的操作,即便在不同的待设置项目中也可以实现功能函数的复用。在现有技术中,对于不同厂商或不同应用场景中的项目必须分别编写对应的自动化脚本,即使项目A与项目B中具有大量相同的测试用例,也难以将项目A的自动化脚本移植到项目B中,而使用本申请实施例的方法,可以实现不同待设置项目的功能函数的复用,提升测试用例的复用率,降低移植成本。
结合第一方面,在第一方面的某些实现方式中,方法还包括:对第二自动化脚本进行解析,以获取第二自动化脚本对应的第二待设置项目的数据;将第二待设置项目和第二待设置项目的数据显示在第二用户界面上。
本申请实施例的方法除了根据用户在用户界面输入的待设置项目的数据生成对应的自动化脚本,还包括根据后台的自动化脚本获取用户界面上待设置项目的数据,并显示在用户界面上。其中后台的自动化脚本的生成方式本申请实施例在此不做限定,例如该自动化脚本可以是通过现有技术生成的,也可以是通过本申请实施例的生成自动化脚本的方法生成的。
结合第一方面,在第一方面的某些实现方式中,对第二自动化脚本进行解析的方法包括正则提取、关键字匹配和AI识别中的任一种。
结合第一方面,在第一方面的某些实现方式中,方法还包括:获取第二自动化脚本的目录;根据第二自动化脚本的目录生成第二待设置项目的目录;将第二待设置项目的目录显示在第二用户界面上。
在现有技术中,对于用户界面上的多个待设置项目,为了方便管理,往往需要用户自行编辑该多个待设置项目的目录,对于用户来说耗时耗力。而使用本申请实施例的方法,在根据后台的自动化脚本获取用户界面上待设置项目的数据的同时,还可以根据后台的自动化脚本的目录获取用户界面上待设置项目的目录,由于自动化脚本代码在运行中会自动生成相应的目录,根据自动化脚本的目录创建相应的用户界面上的待设置项目的目录,可以避免用户再自行编写多个待设置项目的目录,可以减少用户的工作量,提高用户体验。结合第一方面,在第一方面的某些实现方式中,方法还包括:修改第二自动化脚本中的第二功能函数的参数;第二自动化脚本在第二用户界面上对应的第二待设置项目的数据随的功能函数的参数的修改而变化。
本申请实施例中,由于可以根据后台的自动化脚本获取用户界面上待设置项目的数据,即后台的自动化脚本的数据与用户界面上待设置项目的数据是一一对应的,如此当在后台的自动化脚本中修改功能函数的参数时,该自动化脚本在用户界面上对应的待设置项目的数据也会随功能函数的参数的修改而相应变化。如此,当开发人员检测到后台的自动化脚本中有任何需要修改的地方时,可以直接在自动化脚本代码中进行修改,用户界面上的相应的数据也会随之改变,由此可以实现开发人员对用户界面的实时管理。
结合第一方面,在第一方面的某些实现方式中,方法还包括:修改第二自动化脚本的目录;第二用户界面上的第二待设置项目的目录随第二自动化脚本中的目录的修改而变化。
本申请实施例中,当修改自动化脚本目录时,由于用户界面上的待设置项目的目录是根据自动化脚本的目录生成的,因此用户界面上的待设置项目的目录也会随自动化脚本中的目录的修改而变化。
结合第一方面,在第一方面的某些实现方式中,功能函数包括装饰器函数。
本申请实施例的功能函数包括装饰器函数,装饰器函数是用于修改其他函数功能的函数,在实际应用中,如果需要实现参数泛化,例如需要对待设置项目的某些步骤进行反复执行或循环之类的操作,可以将相关的步骤放入装饰器函数中,通过调整装饰器函数的参数进行控制。
第二方面,提供了一种生成自动化脚本的装置,该装置包括:获取单元,用于获取用户界面中的至少一个待设置的项目和用户在至少一个待设置的项目中输入的数据;处理单元,用于根据至少一个待设置的项目确定至少一个自动化脚本模板,至少一个自动化脚本模板中包括待设置的数据;根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本。
结合第二方面,在第二方面的某些实现方式中,一个第一自动化脚本模板对应于一个第一待设置的项目,或者一个第一自动化脚本模板对应于多个第一待设置的项目。
结合第二方面,在第二方面的某些实现方式中,用户在至少一个第一待设置的项目中输入的数据包括一个或多个操作和一个或多个操作对应的参数,根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本,包括:根据一个或多个操作和一个或多个操作对应的参数确定第一功能 函数的参数,预设功能函数和预设功能函数的参数为至少一个第一自动化脚本模板中的待设置的数据;将预设功能函数、预设功能函数的参数填入至少一个第一自动化脚本模板得到第一自动化脚本。
结合第二方面,在第二方面的某些实现方式中,当不同待设置项目包括相同操作时,相同操作对应的预设功能函数相同。
结合第二方面,在第二方面的某些实现方式中,处理单元还用于:对第二自动化脚本进行解析,以获取第二自动化脚本对应的第二待设置项目的数据;将第二待设置项目和第二待设置项目的数据显示在第二用户界面上。
结合第二方面,在第二方面的某些实现方式中,对第二自动化脚本进行解析的方法包括正则提取、关键字匹配和AI识别中的任一种。
结合第二方面,在第二方面的某些实现方式中,获取单元还用于获取第二自动化脚本的目录;处理单元还用于,根据第二自动化脚本的目录生成第二待设置项目的目录;处理单元还用于,将第二待设置项目的目录显示在第二用户界面上。
结合第二方面,在第二方面的某些实现方式中,处理单元还用于:修改第二自动化脚本中的功能函数的参数;第二自动化脚本在第二用户界面上对应的第二待设置项目的数据随的功能函数的参数的修改而变化。
结合第二方面,在第二方面的某些实现方式中,处理单元还用于:修改第二自动化脚本的目录;第二用户界面上的第二待设置项目的目录随第二自动化脚本中的目录的修改而变化。
结合第二方面,在第二方面的某些实现方式中,功能函数包括装饰器函数。
第三方面,提供一种计算设备,包括:至少一个处理器和存储器;至少一个处理器与存储器耦合,用于读取并执行存储器中的指令,使得所述计算设备部署上述第二方面中任一项所述的生成自动化脚本的装置。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中任一项所述的方法。
图1是本申请实施例的一种现有的生成自动化脚本的方法的示意性架构图;
图2是本申请实施例的生成自动化脚本的方法的示意性结构图;
图3是本申请实施例的两种应用场景的示意图;
图4是本申请实施例的一种计算设备的示意性架构图;
图5是本申请实施例的生成自动化脚本的方法的示意性流程图;
图6是本申请实施例的一种针对车辆开发的测试用例写作的用户界面示意图;
图7是本申请实施例的对于一个待设置项目的两种可能的自动化脚本模板的示意图;
图8是本申请实施例的几种操作和操作的参数对应的功能函数的示意图;
图9是本申请实施例的功能函数复用的示意图;
图10是本申请实施例的读取后台的自动化脚本中的数据的示意图;
图11是本申请实施例的装饰器函数应用的示意图;
图12是本申请实施例的生成自动化脚本的方法的示意性框图;
图13是本申请实施例的生成自动化脚本的装置的示意性框图;
图14是本申请实施例的生成自动化脚本的装置的结构示意图。
下面将结合附图,对本申请中的技术方案进行描述。
由于手工编写自动化脚本耗时耗力,因此发展出另一种基于浏览器/服务器(browser/server,B/S)架构的生成自动化脚本的方法,该方法通过传统的模型-视图-控制(model view controller,MVC)架构生成测试用例的相关数据,然后再通过转码系统将数据转化为自动化脚本代码,从而实现自动化脚本的生成。
其中,B/S架构是与客户端/服务器(client/server,C/S)架构相对应的架构,二者均为应用程序架构,C/S架构建立在局域网的基础上,其特点是用户使用时需要安装相应的客户端;而B/S架构是建立在广域网的基础上,其特点是无需安装客户端,使用浏览器即可,B/S架构将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用,当需要更新升级时,无需升级多个客户端,升级服务器即可,客户端上只需有浏览器,服务器上安装数据库,浏览器通过服务器与数据库进行交互。
MVC架构属于B/S架构的一种,包括模型层、视图层和控制层,其中最上面的一层为直接面向用户的视图层,视图层代表用户交互界面,用于将信息显示给用户。最下面一层为模型层,也可称为数据层,即程序需要操作的数据或信息,模型层负责存储系统的中心数据,是业务流程/状态的处理与业务规则的制定,业务流程的处理过程对其他层来说是黑箱操作,模型层接收视图层请求的数据,并返回最终的处理结果。中间一层为控制层,控制层负责根据用户从视图层输入的指令,选取模型层中的数据,然后对其进行相应的操作,产生最终结果,具体可以理解为从用户接收请求,将模型层与视图层匹配在一起,共同完成用户的请求,控制层并不做任何的数据处理,例如,用户点击一个连接,控制层接收请求后并不处理业务信息,只是将用户的信息传递给模型层,并告诉模型层需要做什么,选择符合要求的视图返回给用户。这三层是紧密联系在一起但又相互独立,每一层内部的变化不影响其他层,每一层都对外提供接口,供上一层调用,如此软件可以实现模块化,修改外观或者变更数据都不必修改其他层,极大方便了维护和升级。
图1示出了现有的一种生成自动化脚本的方法的示意性架构图,如图1所示,其中前端用户界面(user interface,UI)层相当于视图层,后台服务层相当于控制层,数据库层相当于模型层,因此图1中的前端UI层、后台服务层和数据库层共同构成了一个MVC架构。前端UI层作为用户操作测试用例的界面,与用户直接对接;后台服务层负责处理用户在前端UI层操作所产生的数据,并将其存储在数据库中;数据库层负责存储测试用例的相关数据。此外图1中的架构还包括数据转换层和执行器层,数据转换层用于将数据转换为相应的自动化脚本,执行器层用于执行该自动化脚本。
图1所示的架构可以实现生成自动化脚本,但是图1所示的架构较为臃肿复杂,生成自动化脚本的工作量较大,同时有较大的维护成本,例如,当测试用例中的基础参数或者项目变更后,则测试用例的相应数据也需要变更,然而由于图1的架构中测试用例的数据存储在数据库中,在实际应用中,从数据库中更改数据难以操作,因此需要巨大的工作量去开发移植模块,增加成本。
图2示出了本申请实施例的生成自动化脚本的方法的示意性结构图,如图2所示,相比于图1中的架构,图2中的架构摒弃了数据库层,而直接将自动化脚本作为数据存储,相应的,也就无需从数据库到脚本的数据转换层和执行层,同时脚本层可以通过服务器同步共享给多个客户端的用户使用。图2所示的架构有效精简了测试用例写作平台的开发工作量,可以实现平台的快速开发和部署。
因此,本申请实施例提供一种生成自动化脚本的方法,该方法基于MVC架构生成自动化脚本,避免人工编写大量的自动化脚本,提高了写作效率;同时本申请实施例的生成自动化脚本的方法直接将自动化脚本作为数据存储,避免使用数据库保存数据,精简了架构,减少了开发工作量,提高了数据处理的灵活程度。
图3示出了本申请实施例的方法两种应用场景示意图。由于本申请实施例的架构轻量化,部署简单,因此本申请实施例的方法可以部署在个人电脑中,如图3中的场景一所示,其中前端即为个人电脑中的用户界面,服务层可以为个人电脑中的服务器,或者图2中的服务层,后台用于存储自动化脚本,当用户在个人电脑中前端的用户界面输入数据后,服务层对数据进行处理,并根据本申请实施例的方法生成对应的自动化脚本,自动化脚本存储在后台中。此外,本申请实施例的方法还可以作为网络服务部署在网络平台或其他自动化平台中,如图3中的场景二,当本申请实施例的方法还可以作为网络服务部署在网络平台时,多个用户可以使用本地的个人电脑登录该网络平台,此时多个用户的个人电脑作为前端,通过界面交互接收用户输入的数据,网络平台的服务器部署在云端,对用户输入的数据进行处理,通过本申请实施例的方法生成对应的自动化脚本,可选的,可以通过代码同步将自动化脚本同步到代码仓,代码仓可以是云端的存储器,根据每个用户在本地个人电脑上输入的数据在云端生成的对应的自动化脚本可以再发送给相应的个人电脑,如此本地的个人电脑可以运行相应的自动化脚本以执行用户在用户界面输入的数据;相应的,开发人员可以对云端的自动化脚本进行检查或修改等,而相应的修改也可以同步到用户的个人电脑中。
下面结合图4,对本申请实施例提供的一种计算设备进行详细描述,该计算设备可以用于实现本申请实施例的生成自动化脚本的方法。
图4是本申请实施例提供的一种计算设备400的架构示意图。该计算设备400可以是服务器或者计算机或者其他具有计算能力的设备。图4所示的计算设备400包括:至少一个处理器410和内存420。
处理器410执行内存420中的指令,使得计算设备400实现本申请提供的生成自动化脚本的方法,例如实现由生成自动化脚本的装置执行的步骤。或者,处理器410执行内存420中的指令,使得计算设备400实现本申请提供的生成自动化脚本的装置,例如实现生成自动化脚本的装置包括的各功能模块。
可选地,计算设备400还包括系统总线,其中,处理器410和内存420分别与系统总线连接。处理器410能够通过系统总线访问内存420,例如,处理器410能够通过系统总线在内存420中进行数据读写或代码执行。该系统总线是快捷外设部件互连标准(peripheral component interconnect express,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述系统总线分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型 的总线。
一种可能的实现方式,处理器410的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在内存420或者缓存416中。
可选地,处理器410可能是集成电路芯片,具有信号的处理能力。作为示例而非限定,处理器410是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器是微处理器等。例如,该处理器410是中央处理单元(central processing unit,CPU)。
可选地,每个处理器410包括至少一个处理单元412和内存控制单元414。
可选地,处理单元412也称为核心(core)或内核,是处理器最重要的组成部分。处理单元412是由单晶硅以一定的生产工艺制造出来的,处理器所有的计算、接受命令、存储命令、处理数据都由核心执行。处理单元分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。各种处理单元都具有固定的逻辑结构,例如,处理单元包括例如,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元。
一种实现举例,内存控制单元414用于控制内存420与处理单元412之间的数据交互。具体地说,内存控制单元414从处理单元412接收内存访问请求,并基于该内存访问请求控制针对内存的访问。作为示例而非限定,内存控制单元是内存管理单元(memory management unit,MMU)等器件。
一种实现举例,各内存控制单元414通过系统总线进行针对内存420的寻址。并且在系统总线中配置仲裁器(图中未示出),该仲裁器负责处理和协调多个处理单元412的竞争访问。
一种实现举例,处理单元412和内存控制单元414通过芯片内部的连接线,例如地址线,通信连接,从而实现处理单元412和内存控制单元414之间的通信。
可选地,每个处理器410还包括缓存416,其中,缓存是数据交换的缓冲区(称作cache)。当处理单元412要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助处理单元412更快地运行。
内存(memory)420能够为计算设备400中的进程提供运行空间,例如,内存420中保存用于生成进程的计算机程序(具体地说,是程序的代码)。计算机程序被处理器运行而生成进程后,处理器在内存420中为该进程分配对应的存储空间。进一步的,上述存储空间进一步包括文本段、初始化数据段、位初始化数据段、栈段、堆段等等。内存420在上述进程对应的存储空间中保存进程运行期间产生的数据,例如,中间数据,或过程数据等等。
可选地,内存也称为内存储器,其作用是用于暂时存放处理器410中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器410就会把需要运算的数据调到内存中进行运算,当运算完成后处理单元412再将结果传送出来。
作为示例而非限定,内存420是易失性存储器或非易失性存储器,或可包括易失性和 非易失性存储器两者。其中,非易失性存储器是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的内存420旨在包括但不限于这些和任意其它适合类型的存储器。
以上列举的计算设备400的结构仅为示例性说明,本申请并未限定于此,计算设备400包括现有技术中计算系统中的各种硬件,例如,计算设备400还包括除内存420以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备400还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备400还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备400也可仅仅包括实现本申请实施例所必须的器件,而不必包括图4中所示的全部器件。
以下结合图5对本申请实施例的生成自动化脚本的方法进行详细的介绍,该方法可以由图4所示的计算设备400执行,以实现本申请实施例提供的生成自动化脚本的方法。
图5是本申请实施例的生成自动化脚本的方法的示意性流程图,如图5所示,该方法包括步骤501至步骤503,以下分别进行介绍。
S501,获取用户界面中的至少一个待设置的项目和用户在该至少一个待设置的项目中输入的数据。
图5的方法可以根据用户在前端的用户界面输入的数据生成相应的自动化脚本。对于测试用例来说,待设置的项目可以是一个完整的测试用例,也可以是一个测试用例的一个部分。待设置的项目中可以包括固定的数据,固定的数据无需用户输入,也可以包括待输入的数据,需要由用户以填空或选择的方式输入。
以图6为例,图6示出了一种针对车辆开发的测试用例写作的用户界面,在图5所示的用户界面中,待设置的项目可以是图6所示的整个测试用例,包括“用例信息”和“测试过程”,也可以是图6所示的测试用例的部分,例如待设置项目只是“测试过程”,甚至只是“测试过程”中的“测试步骤”。用户在待设置的项目中输入数据可以以填空或选择的方式输入,例如图6中“用例名称”可以由用户以填空的方式输入,用户可以自行命名该“用例名称”,数据也可以由用户以选择的方式输入,用户可以在多个备选项中进行选择,例如图6中“测试步骤”-“行为名称”,用户在备选项“插入直流快充枪”和“插入直流慢充枪”中选择了“插入直流快充枪”。除了以填空或选择的方式输入数据之外,用户还可以以其他可能的方式在待设置项目中输入数据,本申请实施例在此不做限定。应理解,图6所示的用户界面只是对本申请实施例的用户界面的举例,并不对本申请构成限定,除了图6所示的用户界面,本申请实施例的用户界面还可以是其他的形式,只要包括待设置的项目并且 可以由用户在待设置项目中输入数据即可。
S502,根据至少一个待设置的项目确定至少一个自动化脚本模板,该至少一个自动化脚本模板中包括待设置的数据。
本申请实施例的方法可以提供多个自动化脚本模板,该多个自动化脚本模板可以由人为预先设置。根据一个待设置的项目可以确定一个自动化脚本模板,一个自动化脚本模板对应于一个待设置的项目,或者一个自动化脚本模板也可以对应于多个待设置的项目。自动化脚本模板主要表现为一种格式,自动化脚本模板中可以包括待设置项目中的固定数据,也可以不包括待设置项目中的固定数据,而只包括一个或多个待设置的数据,该一个或多个待设置的数据对应于用户在待设置的项目中输入的数据。例如图7,图7示出了对于一个待设置项目的两种可能的自动化脚本模板,其中,待设置项目的“预置条件”、“中间处理”、“后置处理”为固定数据,在自动化脚本模板A中,“预置条件”、“中间处理”、“后置处理”也为固定数据,大括号内为自动化脚本模板A的待设置的数据,在自动化脚本模板B中,不包括“预置条件”、“中间处理”、“后置处理”等固定数据,只包括大括号内的自动化脚本模板B的待设置的数据,从图7中可以看出,不论自动化脚本模板是否包括固定数据,其均具有一定的格式,且该格式与待设置的项目的格式一致。因此根据待设置的项目可以确定自动化脚本模板即为确定与该待设置的项目具有相同格式的自动化脚本模板,具体可以预先为待设置项目和自动化脚本模板建立映射关系,之后根据待设置项目和映射关系即可确定相应的自动化脚本模板。
S503,根据用户在至少一个待设置的项目中输入的数据设置至少一个自动化脚本模板中的待设置的数据,以得到自动化脚本。
具体的,用户在至少一个待设置的项目中输入的数据包括一个或多个操作和一个或多个操作对应的参数,例如图7中,操作为“制动开关”,对应的参数为“等待10s”,以及操作“挂挡”和其对应的参数“P档”等。本申请实施例中,每个操作均具有相应的功能函数,该功能函数为开发人员预先设置,在实际应用中,每个操作对应的功能函数可以相同,也可以不同,优选地,如果每个操作对应的功能函数相同,则可以为每个操作执行相同的前置操作,便于统一管理。每个操作的前置操作实际对应一系列代码,本申请实施例将一系列代码封装为功能函数。然后根据一个或多个操作和其对应的参数确定该一个或多个操作对应的功能函数的参数,其中,每个操作的具体执行代码也被封装为对应的函数,以作为功能函数的参数,而操作对应的参数也被转换为功能函数的参数,用于确定操作的具体执行程度。将每个操作的前置操作封装为功能函数,而操作的具体执行和其参数作为功能函数的参数,使得用户界面上的操作步骤与自动化脚本中的操作步骤在数量和顺序上可以保持一致,而功能函数对应的一系列代码为底层逻辑实现。例如对于操作“制动开关”和对应的参数为“等待10s”,其对应的功能函数为“self.run_behavior()”,而功能函数的参数为“制动开关,delay=10”,因此自动化脚本模板中的待设置的数据为“self.run_behavior(制动开关,delay=10)”,应理解,这里功能函数中的“制动开关”实际对应具体的函数,该函数由开发人员预先设置,具体形式本申请实施例在此不做限定。图8列举出了本申请实施例的几种操作和操作的参数对应的功能函数,一般来说,用户界面上的操作数量是可以穷举的,因此操作对应的函数可以人为预先定义,在实际应用中,根据用户输入的操作在预先定义的多个函数中可以找到对应的函数。例如,如图8所示,“挂P档”对应的功能函数为 “self.run_behavior(挂挡,P)”,“踩踏油门50%”对应的功能函数为“self.run_behavior(油门踩踏,50)”,“打开车载空调”对应的功能函数为“self.run_behavior(打开车载空调)”,“踩踏刹车”对应的功能函数为“self.run_behavior(踩踏刹车)”,而功能函数“self.run_behavior()”底层逻辑实现的具体操作为“连接登录HIL机柜,打开机柜端口,写入端口数据……”。功能函数和功能函数的参数即为自动化脚本模板中的待设置的数据,因此,根据功能函数、功能函数的参数和自动化脚本模板即可得到自动化脚本。应理解,图8只是对本申请实施例的操作及其功能函数和底层逻辑实现的举例说明,并不构成对本申请的限定,在实际应用中,开发人员可以根据实际需要自行设计不同操作对应的功能函数和具体底层逻辑实现。
本申请实施例中,由于将操作对应的一系列代码封装为功能函数,因此对于相同的操作,即便在不同的待设置项目中也可以实现功能函数的复用。如图9所示,对于测试用例“制动开关,等待10s”,其对应的完整的功能函数为“self.run_behavior(制动开关,delay=10)”,对于测试用例“挂P档”对应的完整的功能函数为“self.run_behavior(挂挡,P)”,在项目A、项目B、项目C中均需要使用这两个测试用例进行测试,其中项目A、项目B、项目C可以是不同厂商或不同应用场景中的项目,因此在实际应用中,可以为测试用例和其对应的地址建立映射关系,如此,在项目A、项目B、项目C中只需填入对应的地址即可根据映射关系获取相应的测试用例的功能函数,并执行该功能函数。其中项目A、项目B、项目C可能会有不同的附加条件,在实际操作中,只需将该附加条件对应的函数或参数填入功能函数之后,即可结合附加条件执行该功能函数,例如项目A中对于“制动开关”的附加条件为“aa”,对应“挂挡”的附加条件为“bb”。在现有技术中,对于不同厂商或不同应用场景中的项目必须分别编写对应的自动化脚本,即使项目A与项目B中具有大量相同的测试用例,也难以将项目A的自动化脚本移植到项目B中,而使用本申请实施例的方法,可以实现不同待设置项目的功能函数的复用,提升测试用例的复用率,降低移植成本。
本申请实施例的方法除了根据用户在用户界面输入的待设置项目的数据生成对应的自动化脚本,还包括根据后台的自动化脚本获取用户界面上待设置项目的数据,并且将获取的数据显示在用户界面上,其中后台的自动化脚本的生成方式本申请实施例在此不做限定,例如该自动化脚本可以是通过现有技术生成的,包括根据现有的数据库方法确定的自动化脚本和人工手动编写的自动化脚本等,也可以是通过本申请实施例的生成自动化脚本的方法生成的。具体的,当后台已经存在用户界面上的待设置项目对应的自动化脚本时,可以通过inspect方法或者解析文件方法对自动化脚本的代码进行解析,具体可以通过正则提取、关键字匹配或AI识别等方式对得到自动化脚本中的功能函数和功能函数中的参数进行特征识别,从而得到自动化脚本对应的待设置项目的数据。例如图10所示,对应自动化脚本,使用正则提取的方式对自动化脚本代码进行解析,提取功能函数中的参数,例如对于功能函数“self.run_behavior(制动开关,delay=10)”,通过正则提取的方式可以获取其对应的操作为“制动开关”,而操作对应的参数为“10”,因此功能函数“self.run_behavior(挂挡,P)”,可通过正则提取的方式可以获取其对应的操作为“挂挡”,而操作对应的参数为“P”,以上两个功能函数为“预置条件”下的数据,因此将提取到的操作和其参数显示在用户界面上的“预置条件”的待设置数据中,即为“制动开关,等待10s”和“挂挡,P档”。由此,本申请实施例的方法既可以实现根据用户界面上的待设置项目和其数 据生成自动化脚本,也可以反向执行,即读取后台的自动化脚本中的数据,将该数据显示在用户界面上。
相应的,由于可以根据后台的自动化脚本获取用户界面上待设置项目的数据,即后台的自动化脚本的数据与用户界面上待设置项目的数据是一一对应的,如此当在后台的自动化脚本中修改功能函数的参数时,该自动化脚本在用户界面上对应的待设置项目的数据也会随功能函数的参数的修改而相应变化。如此,当开发人员检测到后台的自动化脚本中有任何需要修改的地方时,可以直接在自动化脚本代码中进行修改,用户界面上的相应的数据也会随之改变,由此可以实现开发人员对用户界面的实时管理。而现有技术无法做到这一点,这是由于现有技术中用户界面上的待设置项目的数据被存储到数据库中,然后根据数据库中的数据转换为自动化脚本,因此现有技术中的自动化脚本与用户界面上的待设置项目的数据并不能达成直接联系,当修改自动化脚本的数据时,用户界面上的数据也不会有相应的变化。
在现有技术中,对于用户界面上的多个待设置项目,为了方便管理,往往需要用户自行编辑该多个待设置项目的目录,对于用户来说耗时耗力。而使用本申请实施例的方法,在根据后台的自动化脚本获取用户界面上待设置项目的数据的同时,还可以根据后台的自动化脚本的目录获取用户界面上待设置项目的目录,由于自动化脚本代码在运行中会自动生成相应的目录,根据自动化脚本的目录创建相应的用户界面上的待设置项目的目录,可以避免用户再自行编写多个待设置项目的目录,可以减少用户的工作量,提高用户体验。
自然相应的,当修改自动化脚本目录时,由于用户界面上的待设置项目的目录是根据自动化脚本的目录生成的,因此用户界面上的待设置项目的目录也会随自动化脚本中的目录的修改而变化。
此外,本申请实施例的功能函数包括装饰器函数,装饰器函数是用于修改其他函数功能的函数,可以在不修改原有代码的情况下,为被装饰的对象增加新的功能、附加限制条件或者帮助输出,在实际应用中,如果需要实现参数泛化,例如需要对待设置项目的某些步骤进行反复执行或循环之类的操作,可以将相关的步骤放入装饰器函数中,通过调整装饰器函数的参数进行控制。例如图11所示的示例,用户界面输入需要执行的操作为“设置电池的荷电状态(state of charge,SOC)”、“车辆上电”和“车辆下电”,其中“设置电池SOC”需要执行3次,且第一次执行电池SOC为1,第二次执行电池SOC为2,第三次执行电池SOC为3,即需要进行循环执行。因此在实际操作中,可以将循环操作放入装饰器函数“loop()”中,并在装饰器函数的括号内设置循环的次数为3次,在具体执行时,即可对该相同的参数执行3次,其中每次执行时如果参数需要改变也可以在自动化脚本中设定。
本申请实施例的生成自动化脚本的方法根据用户在用户界面输入的待设置项目的数据和预设的自动化脚本模板生成待设置项目对应的自动化脚本,避免人工编写,节省人力,且摒弃了现有技术中的数据库,无需根据数据库中的待设置项目的数据转换为自动化脚本,实现了架构的轻量级。本申请实施例的方法生成的自动化脚本与用户界面的待设置项目的数据是一一对应的,当在后台修改自动化脚本的数据时用户界面的待设置项目的数据也会随之变化,使得开发人员可以通过编辑自动化脚本而对用户界面进行及时的管理。本申请实施例的方法可以根据自动化脚本的目录创建用户界面上的待设置项目的目录,无需用户自行编写,提高用户使用体验。此外,本申请实施例的自动化脚本中的功能函数可以实现 不同场景下的复用,在现有技术中,多个待设置项目的数据被存储到数据库中,在应用时,需要根据待设置项目找到其在数据库中对应的数据,然后根据数据库中对应的数据生成相应的自动化脚本,因此不同待设置项目在数据库中应该分别对应不同的数据,即使不同待设置项目中的操作是相同的,彼此之间也不能复用,因此不同待设置项目必须在数据库中预先存储对应的数据,开发工作量大;而本申请实施例将操作封装为功能函数,功能函数可以复用,在实际应用中,即便不同的待设置项目也可以引用相同的功能函数,无需每个待设置项目都分别设计对应的代码,从而可以减小工作量。
以上结合图5至图11对本申请实施例的生成自动化脚本的方法进行了详细的介绍,以下再结合图12的具体示例对本申请实施例的生成自动化脚本的方法的流程进行系统介绍,应理解,图12的方法可以由图4所示的计算设备执行。
图12以对车辆的测试为例,示出了本申请实施例的生成自动化脚本的方法的示意性框图。如图12所示,待设置项目包括用户界面上的“用例信息”和“测试过程”的内容,用户在“用例名称”中输入“Keyoff状态插抢快充”,“预置条件”中未添加行为,在“测试步骤”中添加了“行为0”,并选择了行为名称为“插入直流快充枪”,在“后置处理”中添加了“行为1”,并选择了行为名称为“拔出直流快充枪”,以上即为用户在用户界面输入的待设置项目的数据。然后根据该待设置项目确定了对于的自动化脚本模板如图12所示,该自动化脚本模板的格式与用户界面上待设置项目的格式一致,其中“测试过程”、“预置条件”“测试步骤”、“后置处理”等为模板的固定数据,大括号内为模板的待设置数据,需要根据用户在用户界面输入的待设置项目的数据设置。最后,根据用户输入的数据中的具体行为确定其对应的功能函数及其参数,功能函数为预先设置的,用户界面上的每个可选的行为均有其对应的功能函数,例如“插入直流快充枪”行为和“插入直流慢充枪”均有其对应的功能函数,根据具体行为确定其对应的功能函数及其参数,然后填入自动化脚本模板中的大括号内,由此可以得到待设置项目的对应的自动化脚本如图12所示。在自动化脚本运行时会自动生成相应的目录,如图12中自动化脚本左侧的目录,包括“整车放电”、“热管理”、“车辆充放电”等,其中“车辆充放电”还包括子目录“Keyoff状态插抢快充”和“Keyon状态插抢快充”等,由于自动化脚本与用户界面上的待设置项目是一一对应的,因此根据自动化脚本的目录也可以创建用户界面上多个待设置的项目的目录,避免用户自行编写目录,节省用户时间。
上文结合附图对本申请实施例的方法进行了详细的描述,下面对本申请实施例的装置进行描述,应理解,本申请实施例的装置能够执行本申请实施例的方法的各个步骤,下面在介绍本申请实施例的装置时适当省略重复的描述。
图13为本申请实施例的生成自动化脚本的装置的示意性框图,如图13所示,该生成自动化脚本的装置包括获取单元1301,处理单元1302,以下进行简要介绍。
获取单元1301,用于获取用户界面中的至少一个待设置的项目和用户在至少一个待设置的项目中输入的数据。
处理单元1302,用于根据至少一个待设置的项目确定至少一个自动化脚本模板,至少一个自动化脚本模板中包括一个或多个待设置的数据。
处理单元1302还用于根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本。
在某些实现方式中,一个第一自动化脚本模板对应于一个第一待设置的项目,或者一个第一自动化脚本模板对应于多个第一待设置的项目。
在某些实现方式中,用户在至少一个第一待设置的项目中输入的数据包括一个或多个操作和一个或多个操作对应的参数,根据用户在至少一个第一待设置的项目中输入的数据设置至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本,包括:根据一个或多个操作和一个或多个操作对应的参数确定第一功能函数的参数,预设功能函数和预设功能函数的参数为至少一个第一自动化脚本模板中的待设置的数据;将预设功能函数、预设功能函数的参数填入至少一个第一自动化脚本模板得到第一自动化脚本。
在某些实现方式中,当不同待设置项目包括相同操作时,相同操作对应的预设功能函数相同。
在某些实现方式中,处理单元1302还用于:对第二自动化脚本进行解析,以获取第二自动化脚本对应的第二待设置项目的数据;将第二待设置项目和第二待设置项目的数据显示在第二用户界面上。
在某些实现方式中,对第二自动化脚本进行解析的方法包括正则提取、关键字匹配和AI识别中的任一种。
在某些实现方式中,获取单元1302还用于获取第二自动化脚本的目录;处理单元1302还用于,根据第二自动化脚本的目录生成第二待设置项目的目录;处理单元1302还用于,将第二待设置项目的目录显示在第二用户界面上。
在某些实现方式中,处理单元1302还用于:修改第二自动化脚本中的功能函数的参数;第二自动化脚本在第二用户界面上对应的第二待设置项目的数据随的功能函数的参数的修改而变化。
在某些实现方式中,处理单元1302还用于:修改第二自动化脚本的目录;第二用户界面上的第二待设置项目的目录随第二自动化脚本中的目录的修改而变化。
在某些实现方式中,功能函数包括装饰器函数。
应理解,图13所示的生成自动化脚本的装置可以用于实现上述生成自动化脚本的方法500,其中获取单元1301用于实现步骤501,处理单元1302用于实现步骤502和步骤503,图13所示的生成自动化脚本的装置还可以用于实现图6至图12所述的生成自动化脚本的方法,具体步骤可以参照上述对于图6至图12的描述,为了简洁,本申请在此不再赘述。
应理解的是,本申请实施例中的装置1300可以由软件实现,例如,具有上述功能的计算机程序或指令来实现,相应计算机程序或指令可以存储在终端内部的存储器中,通过处理器读取该存储器内部的相应计算机程序或指令来实现上述功能。或者,本申请实施例中的装置1300还可以由硬件来实现。其中处理单元1302为处理器(如NPU、GPU、系统芯片中的处理器),获取单元1301为数据接口。或者,本申请实施例中的装置1300还可以由处理器和软件单元的结合实现。具体地,获取单元1301可以为处理器的接口电路,用于获取用户在用户界面输入的待设置项目的数据,并发送给处理器接口电路。
图14是本申请实施例的生成自动化脚本的装置1400的结构示意图。图14所示的装置1400包括存储器1401、处理器1402、通信接口1403以及总线1404。其中,存储器1401、处理器1402、通信接口1403通过总线1404实现彼此之间的通信连接。
应理解,图13中的获取单元1301可以相当于装置1400中的通信接口1403,处理单元1302可以相当于装置1400中的处理器1402。下面对装置1400中的各个单元和单元进行详细的介绍。
存储器1401可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1401可以存储程序,当存储器1401中存储的程序被处理器1402执行时,处理器1402用于执行本申请实施例的方法的各个步骤。
具体地,处理器1402可用于执行图5所示的方法中的步骤502、步骤503以及图6至图12所示的处理数据的过程。
当处理器1402执行步骤502、步骤503以及图6至图12所示的处理数据的过程时,处理器1402可以通过通信接口1403从用户界面获取用户在待设置项目中输入的数据,并根据待设置项目确定相应的自动化脚本目标,在根据用户输入的数据和自动化脚本模板得到自动化脚本。
处理器1402可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的方法。
处理器1402还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的方法的各个步骤可以通过处理器1402中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器1402还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1401,处理器1402读取存储器1401中的信息,结合其硬件完成装置中包括的单元所需执行的功能,或者执行本申请方法实施例的方法。
通信接口1403使用例如但不限于收发器一类的收发装置,来实现装置1400与其他设备或通信网络之间的通信。例如,可以通过通信接口1403从用户界面获取用户在待设置项目中输入的数据。
总线1404可包括在装置1400各个部件(例如,存储器1401、处理器1402、通信接口1403)之间传送信息的通路。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述图5至图12所述的方法。
本申请实施例还提供了一种计算设备,包括:至少一个处理器和存储器,至少一个处理器与存储器耦合,用于读取并执行存储器中的指令,以执行上述图5至图12所述的方 法。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而 前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (22)
- 一种生成自动化脚本的方法,其特征在于,包括:获取用户界面中的至少一个第一待设置的项目和用户在所述至少一个第一待设置的项目中输入的数据;根据所述至少一个第一待设置的项目确定至少一个第一自动化脚本模板,所述至少一个第一自动化脚本模板中包括待设置的数据;根据所述用户在所述至少一个第一待设置的项目中输入的数据设置所述至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本。
- 如权利要求1所述的方法,其特征在于,一个所述第一自动化脚本模板对应于一个所述第一待设置的项目,或者一个所述第一自动化脚本模板对应于多个所述第一待设置的项目。
- 如权利要求1或2所述的方法,其特征在于,所述用户在所述至少一个第一待设置的项目中输入的数据包括一个或多个操作和所述一个或多个操作对应的参数,所述根据所述用户在所述至少一个第一待设置的项目中输入的数据设置所述至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本,包括:根据所述一个或多个操作和所述一个或多个操作对应的参数确定预设功能函数的参数,所述预设功能函数和所述预设功能函数的参数为所述至少一个第一自动化脚本模板中的待设置的数据;将所述预设功能函数、所述预设功能函数的参数填入所述至少一个第一自动化脚本模板得到所述第一自动化脚本。
- 如权利要求3所述的方法,其特征在于,当不同待设置项目包括相同操作时,所述相同操作对应的预设功能函数相同。
- 如权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:对第二自动化脚本进行解析,以获取所述第二自动化脚本对应的第二待设置项目的数据;将所述第二待设置项目和所述第二待设置项目的数据显示在第二用户界面上。
- 如权利要求5所述的方法,其特征在于,所述对所述第二自动化脚本进行解析的方法包括正则提取、关键字匹配和人工智能AI识别中的任一种。
- 如权利要求5或6所述的方法,其特征在于,所述方法还包括:获取所述第二自动化脚本的目录;根据所述第二自动化脚本的目录生成所述第二待设置项目的目录;将所述第二待设置项目的目录显示在所述第二用户界面上。
- 如权利要求5至7中任一项所述的方法,其特征在于,所述方法还包括:修改所述第二自动化脚本中的功能函数的参数;所述第二自动化脚本在所述第二用户界面上对应的第二待设置项目的数据随所述的功能函数的参数的修改而变化。
- 如权利要求5至8中任一项所述的方法,其特征在于,所述方法还包括:修改所述第二自动化脚本的目录;所述第二用户界面上的第二待设置项目的目录随所述第二自动化脚本中的目录的修改而变化。
- 如权利要求5至9中任一项所述的方法,其特征在于,所述功能函数包括装饰器函数。
- 一种生成自动化脚本的装置,其特征在于,包括:获取单元,用于获取用户界面中的至少一个待设置的项目和用户在所述至少一个待设置的项目中输入的数据;处理单元,用于根据所述至少一个待设置的项目确定至少一个自动化脚本模板,所述至少一个自动化脚本模板中包括待设置的数据;根据所述用户在所述至少一个第一待设置的项目中输入的数据设置所述至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本。
- 如权利要求11所述的装置,其特征在于,一个所述第一自动化脚本模板对应于一个所述第一待设置的项目,或者一个所述第一自动化脚本模板对应于多个所述第一待设置的项目。
- 如权利要求11或12所述的装置,其特征在于,所述用户在所述至少一个第一待设置的项目中输入的数据包括一个或多个操作和所述一个或多个操作对应的参数,所述根据所述用户在所述至少一个第一待设置的项目中输入的数据设置所述至少一个第一自动化脚本模板中的待设置的数据,以得到第一自动化脚本,包括:根据所述一个或多个操作和所述一个或多个操作对应的参数确定所述预设功能函数的参数,所述预设功能函数和所述预设功能函数的参数为所述至少一个第一自动化脚本模板中的待设置的数据;将所述预设功能函数、所述预设功能函数的参数填入所述至少一个第一自动化脚本模板得到所述第一自动化脚本。
- 如权利要求13所述的装置,其特征在于,当不同待设置项目包括相同操作时,所述相同操作对应的预设功能函数相同。
- 如权利要求11至14中任一项所述的装置,其特征在于,所述处理单元还用于:对第二自动化脚本进行解析,以获取所述第二自动化脚本对应的第二待设置项目的数据;将所述第二待设置项目和所述第二待设置项目的数据显示在第二用户界面上。
- 如权利要求15所述的装置,其特征在于,所述对所述第二自动化脚本进行解析的方法包括正则提取、关键字匹配和AI识别中的任一种。
- 如权利要求15或16所述的装置,其特征在于,所述获取单元还用于获取所述第二自动化脚本的目录;所述处理单元还用于,根据所述第二自动化脚本的目录生成所述第二待设置项目的目录;所述处理单元还用于,将所述第二待设置项目的目录显示在所述第二用户界面上。
- 如权利要求15至17中任一项所述的装置,其特征在于,所述处理单元还用于:修改所述第二自动化脚本中的功能函数的参数;所述第二自动化脚本在所述第二用户界面上对应的第二待设置项目的数据随所述的功能函数的参数的修改而变化。
- 如权利要求15至18中任一项所述的装置,其特征在于,所述处理单元还用于:修改所述第二自动化脚本的目录;所述第二用户界面上的第二待设置项目的目录随所述第二自动化脚本中的目录的修改而变化。
- 如权利要求15至19中任一项所述的装置,其特征在于,所述功能函数包括装饰器函数。
- 一种计算设备,其特征在于,包括处理器和存储器;所述处理器运行所述存储器中的指令,使得所述计算设备部署如权利要求11至20中任一项所述的装置。
- 一种计算机可读存储介质,其特征在于,包括指令;所述指令用于实现如权利要求1至10中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/140549 WO2023115397A1 (zh) | 2021-12-22 | 2021-12-22 | 生成自动化脚本的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116648689A true CN116648689A (zh) | 2023-08-25 |
Family
ID=86901043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180033485.2A Pending CN116648689A (zh) | 2021-12-22 | 2021-12-22 | 生成自动化脚本的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116648689A (zh) |
WO (1) | WO2023115397A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710489A (zh) * | 2018-05-23 | 2018-10-26 | 中国平安人寿保险股份有限公司 | 自动化导数脚本生成方法、装置、计算机设备 |
CN110413524A (zh) * | 2019-07-26 | 2019-11-05 | 中国工商银行股份有限公司 | 用于生成测试脚本的方法和装置、自动化测试方法 |
CN111736815B (zh) * | 2020-06-28 | 2024-07-09 | 武汉精立电子技术有限公司 | 一种测试文件脚本模块化开发工具、系统及方法 |
CN111949518A (zh) * | 2020-07-29 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种生成故障检测脚本的方法、系统、终端及存储介质 |
CN112052167A (zh) * | 2020-08-25 | 2020-12-08 | 北京梧桐车联科技有限责任公司 | 生成测试脚本代码的方法和装置 |
CN112989781B (zh) * | 2021-03-11 | 2023-11-24 | 携程旅游网络技术(上海)有限公司 | 表单数据自动执行方法、装置、电子设备、存储介质 |
CN112799656B (zh) * | 2021-04-15 | 2021-11-05 | 智道网联科技(北京)有限公司 | 自动化操作的脚本文件配置方法、装置、设备和存储介质 |
-
2021
- 2021-12-22 WO PCT/CN2021/140549 patent/WO2023115397A1/zh active Application Filing
- 2021-12-22 CN CN202180033485.2A patent/CN116648689A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023115397A1 (zh) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378463B (zh) | 一种人工智能模型标准化训练平台及自动化系统 | |
CN106569824A (zh) | 页面数据编译的方法和装置、页面渲染的方法和装置 | |
US11016785B2 (en) | Method and system for mirror image package preparation and application operation | |
CN105608258B (zh) | 一种基于模型的系统设计及信息流可视化仿真系统及方法 | |
CN112199086B (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN110990053A (zh) | 机器学习方案模板的创建方法、使用方法及装置 | |
CN109491708A (zh) | 文档生成方法、系统、设备和介质 | |
CN111459621B (zh) | 云仿真集成与调度方法、装置、计算机设备和存储介质 | |
EP3982268B1 (en) | Chassis simulation method and apparatus, server, storage medium and program product | |
CN109614325B (zh) | 一种确定控件属性的方法及装置、电子设备和存储介质 | |
CN110532182A (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
Di Natale et al. | An MDA approach for the generation of communication adapters integrating SW and FW components from Simulink | |
CN117076335B (zh) | 一种模型测试方法、系统、介质及电子设备 | |
CN113408240A (zh) | 芯片验证方法及装置、存储介质 | |
CN117235527A (zh) | 端到端容器化的大数据模型构建方法、装置、设备及介质 | |
CN117290233A (zh) | 一种基于JMeter的自定义生成身份证号码的方法、系统及设备 | |
CN116648689A (zh) | 生成自动化脚本的方法和装置 | |
CN114968741B (zh) | 一种基于场景平台化的性能测试方法、系统、设备和介质 | |
CN116483344A (zh) | 代码生成方法及装置、终端设备、计算机可读存储介质 | |
CN110312990A (zh) | 配置方法及系统 | |
CN109947407A (zh) | 一种数据获取方法及装置 | |
CN115827457A (zh) | 浏览器兼容性测试方法以及相关设备 | |
CN112306844B (zh) | 软件开发系统的接口测试方法、装置、设备及存储介质 | |
KR102006212B1 (ko) | 제 1 시뮬레이터에서 이용되는 xml 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 파이썬 스크립트를 생성하는 장치 및 방법 | |
Kirchner et al. | Using sysml for modelling and code generation for smart sensor asics |
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 |