CN116166525A - 一种测试脚本的生成方法及装置 - Google Patents
一种测试脚本的生成方法及装置 Download PDFInfo
- Publication number
- CN116166525A CN116166525A CN202211436814.0A CN202211436814A CN116166525A CN 116166525 A CN116166525 A CN 116166525A CN 202211436814 A CN202211436814 A CN 202211436814A CN 116166525 A CN116166525 A CN 116166525A
- Authority
- CN
- China
- Prior art keywords
- test
- operation function
- target
- script
- generating
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 592
- 238000013515 script Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000006870 function Effects 0.000 claims abstract description 446
- 238000012216 screening Methods 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 20
- 230000004044 response Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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
-
- 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/3664—Environments for testing or debugging software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请公开一种测试脚本的生成方法及装置,涉及自动化测试技术领域,无需人工编写测试脚本,能够更加便捷、快速地生成测试脚本。该方法包括:根据服务器的待测子***的目标测试任务,从目标测试任务的测试用例中提取目标测试任务的测试步骤信息;从操作函数库中获取测试步骤信息对应的目标操作函数;其中,操作函数库包括服务器中的各个子***可执行的操作函数,目标操作函数包括一个或多个用于对服务器的待测子***执行目标测试任务的操作函数;基于目标操作函数,生成自动化测试脚本,自动化测试脚本用于对待测子***执行目标测试任务。
Description
技术领域
本申请涉及自动化测试技术领域,尤其涉及一种测试脚本的生成方法及装置。
背景技术
服务器是各种子***组合在一起,包含硬件和软件的一个整体。服务器测试就是针对各种子***的测试,当前的趋势是用自动化测试代替人工测试。
服务器自动化测试依赖于自动化测试脚本。相关技术中的自动化测试脚本开发方法包括:测试人员按照被测对象的测试用例编写新的自动化测试脚本。可以看出,相关技术提供的自动化测试脚本开发方法存在以下问题:编写测试脚本对测试人员的代码编写水平要求较高,使得脚本开发的入门门槛较高,且人工编写测试脚本的速度较慢,使得测试脚本的开发速度慢。
发明内容
本申请提供一种测试脚本的生成方法及装置,无需人工编写测试脚本,能够更加便捷、快速地生成测试脚本。
第一方面,本申请提供一种测试脚本的生成方法,包括:根据服务器的待测子***的目标测试任务,从目标测试任务的测试用例中提取目标测试任务的测试步骤信息;从操作函数库中获取测试步骤信息对应的目标操作函数;其中,操作函数库包括服务器中的各个子***可执行的操作函数,目标操作函数包括一个或多个用于对服务器的待测子***执行目标测试任务的操作函数;基于目标操作函数,生成自动化测试脚本,自动化测试脚本用于对待测子***执行目标测试任务。
可以理解的是,在本申请提供的测试脚本的生成方法中,可以根据目标测试任务的测试用例,获取目标测试任务的测试步骤信息,进而根据目标测试任务的测试步骤信息从操作函数库中获取目标操作函数,最终根据目标操作函数自动生成自动化测试脚本。可以看出,基于本申请实施例提供的测试脚本的生成方法,用户仅需根据目标测试任务的测试步骤信息从操作函数库中选择对应的操作函数即可,无需人工编写测试脚本,降低了自动化测试脚本开发的入门门槛,提高了自动化测试脚本的开发速度。
在一种可能的实现方式中,上述从操作函数库中获取测试步骤信息对应的目标操作函数,包括:响应于对操作函数库中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数;目标操作函数是基于测试步骤信息确定的。
可以理解的是,基于本申请提供的方法,用户可以根据目标测试任务的测试步骤信息,确定目标操作函数,然后在操作函数库中查找目标操作函数,进而选中目标操作函数;相应的,处理器响应于对操作函数库中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
另一种可能的实现方式中,上述操作函数库还包括服务器中的各个子***可执行的操作函数的描述信息;上述方法还包括:从测试步骤信息中提取操作函数的描述信息;根据提取的操作函数的描述信息,从操作函数库中筛选一个或多个候选操作函数;上述响应于对操作函数库中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数,包括:响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
可以理解的是,本申请提供的操作函数库还包括操作函数的描述信息,如此,处理器可以根据提取出的操作函数的描述信息,从操作函数库中筛选一个或多个候选操作函数;进而从一个或多个候选操作函数中确定目标操作函数。如此,相比于相关技术中仅能够根据操作函数的内容进行筛选的方法,本申请提供的方法还可以根据操作函数的描述信息进行筛选,提高了筛选精度,避免漏筛,有效的提高了操作函数筛选的精确度,可以辅助用户快速、准确的获取目标操作函数。
另一种可能的实现方式中,上述目标操作函数包括用于执行测试步骤的操作函数;上述基于目标操作函数,生成自动化测试脚本,包括:根据用于执行测试步骤的操作函数,生成自动化测试脚本。
可以理解的是,本申请提供的方法,可以根据目标测试任务的测试步骤信息确定用于执行测试步骤的操作函数;进而根据用于执行测试步骤的操作函数,生成自动化测试脚本。如此,该自动化测试脚本可以用于对服务器的待测子***执行目标测试任务。
另一种可能的实现方式中,上述目标操作函数还包括:用于恢复测试环境的操作函数;上述基于目标操作函数,生成自动化测试脚本,包括:根据用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。
可以理解的是,本申请提供的方法,还可以根据服务器的测试环境,确定用于恢复测试环境的操作函数;进而根据用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。如此,该自动化测试脚本可以用于对服务器的待测子***执行目标测试任务,并在执行完目标测试任务之后,恢复服务器的测试环境。
另一种可能的实现方式中,上述方法还包括:生成测试文件;测试文件包括:测试套文件和测试床文件;其中,测试套文件用于记录自动化测试脚本的代码;测试床文件用于记录测试环境信息。
可以理解的是,由于测试床文件用于记录自动化测试脚本所对应的服务器的测试环境信息,因此,自动化测试平台能够根据测试床文件获取目标测试任务的测试环境,与目标测试任务的测试对象(即待测子***)建立连接,以及与待测子***所在的服务器建立连接。由于测试套文件用于记录自动化测试脚本中的代码,因此,自动化测试平台能够根据测试套文件获取目标测试任务的自动化测试脚本中的代码,进而根据自动化测试脚本中的代码对待测子***执行目标测试任务。
另一种可能的实现方式中,上述操作函数的描述信息包括以下一项或多项:操作函数的名称、操作函数的功能描述、操作函数归属的类、操作函数的输入变量、操作函数的输出变量或操作函数的调用示例。
可以理解的是,本申请实施例提供的操作函数库还包括操作函数的描述信息,如此,在选取操作函数时,可以根据操作函数的描述信息进行筛选,提高了筛选精度,避免漏筛。此外,用户可以根据操作函数的描述信息获知操作函数的功能、调用方法等信息,这样一来,即便用户不了解编程,也可以根据操作函数的描述信息来选择合适的操作函数,降低了测试脚本开发的入门门槛。
第二方面,本申请提供一种脚本生成装置,包括:提取模块,用于根据服务器的待测子***的目标测试任务,从目标测试任务的测试用例中提取目标测试任务的测试步骤信息;获取模块,用于从操作函数库中获取测试步骤信息对应的目标操作函数;其中,操作函数库包括服务器中的各个子***可执行的操作函数,目标操作函数包括一个或多个用于对服务器的待测子***执行目标测试任务的操作函数;生成模块,用于基于目标操作函数,生成自动化测试脚本,自动化测试脚本用于对待测子***执行目标测试任务。
在一种可能的实现方式中,上述获取模块,具体用于响应于对操作函数库中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数;目标操作函数是基于测试步骤信息确定的。
另一种可能的实现方式中,上述操作函数库还包括服务器中的各个子***可执行的操作函数的描述信息;上述提取模块,还用于从测试步骤信息中提取操作函数的描述信息;上述脚本生成装置还包括:筛选模块,用于根据提取的操作函数的描述信息,从操作函数库中筛选一个或多个候选操作函数;上述获取模块,具体用于响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
另一种可能的实现方式中,上述目标操作函数包括用于执行测试步骤的操作函数;上述生成模块,具体用于根据用于执行测试步骤的操作函数,生成自动化测试脚本。
另一种可能的实现方式中,上述目标操作函数还包括:用于恢复测试环境的操作函数;上述生成模块,具体用于根据用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。
另一种可能的实现方式中,上述生成模块,还用于生成测试文件;测试文件包括:测试套文件和测试床文件;其中,测试套文件用于记录自动化测试脚本的代码;测试床文件用于记录测试环境信息。
另一种可能的实现方式中,上述操作函数的描述信息包括以下一项或多项:操作函数的名称、操作函数的功能描述、操作函数归属的类、操作函数的输入变量、操作函数的输出变量或操作函数的调用示例。
第三方面,本申请提供一种脚本生成装置,包括:接口和逻辑电路,逻辑电路用于执行上述第一方面所提供的任一种测试脚本的生成方法。
第四方面,本申请提供一种计算设备,计算设备包括处理器和存储器;处理器与存储器耦合;存储器用于存储计算机指令,计算机指令由处理器加载并执行以使计算设备实现上述第一方面所提供的任一种测试脚本的生成方法。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面所提供的任一种测试脚本的生成方法。
第六方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行上述第一方面所提供的任一种测试脚本的生成方法。
本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种测试脚本的生成方法所涉及的***架构示意图;
图2为本申请实施例提供的一种计算设备的结构示意图;
图3为本申请实施例提供的一种自动化测试框架的示意图;
图4为本申请实施例提供的一种用户界面的示意图一;
图5为本申请实施例提供的一种脚本生成工具的工作流程图;
图6为本申请实施例提供的一种测试脚本的生成方法的流程图;
图7为本申请实施例提供的一种用户界面的示意图二;
图8为本申请实施例提供的一种用户界面的示意图三;
图9为本申请实施例提供的一种用户界面的示意图四;
图10为本申请实施例提供的一种用户界面的示意图五;
图11为本申请实施例提供的一种用户界面的示意图六;
图12为本申请实施例提供的一种用户界面的示意图七;
图13为本申请实施例提供的一种用户界面的示意图八;
图14为本申请实施例提供的一种用户界面的示意图九;
图15为本申请实施例提供的一种脚本生成装置的结构示意图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括其他没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
针对相关技术中存在的技术问题,本申请提供一种测试脚本的生成方法,其思路在于:根据目标测试任务的测试用例,获取目标测试任务的测试步骤信息,进而根据目标测试任务的测试步骤信息从操作函数库中获取目标操作函数,最终根据目标操作函数自动生成自动化测试脚本。可以看出,基于本申请实施例提供的测试脚本的生成方法,用户仅需根据目标测试任务的测试步骤信息从操作函数库中选择对应的操作函数即可,无需人工编写测试脚本,降低了自动化测试脚本开发的入门门槛,提高了自动化测试脚本的开发速度。
下面结合说明书附图,对本申请提供的实施例进行具体介绍。
参见图1,为本申请实施例提供的测试脚本生成方法所涉及的***架构示意图。如图1所示,该硬件运行环境包括:计算设备100和服务器200。
在本申请实施例中,计算设备100用于对服务器200进行自动化测试。
在一些实施例中,计算设备100包括:脚本生成工具和自动化测试平台。脚本生成工具和自动化测试平台均为软件形态。
其中,脚本生成工具用于生成服务器200的自动化测试脚本。具体的,脚本生成工具包括能够与用户进行交互的用户界面(user interface,UI),脚本生成工具基于与用户交互的过程中产生的数据,生成自动化测试脚本。
在一些实施例中,脚本生成工具还用于生成测试文件;该测试文件中包括自动化测试脚本的代码;该测试文件用于自动化测试平台对服务器200进行自动化测试。
自动化测试平台用于根据脚本生成工具产生的测试文件对服务器200进行自动化测试。示例性的,自动化测试平台可以为UniAutos或Selenium等自动化测试工具构建的自动化测试平台,本申请实施例对此不作限定。
可选的,计算设备100可以是平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等。本申请实施例对计算设备100的具体形态不作特殊限制。
参见图2,为本申请实施例提供的计算设备100的结构示意图。如图2所示,计算设备100包括:处理器、存储器和通信接口。
其中,处理器是计算设备100的运算和控制核心。可选的,处理器可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器还可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等。
在本申请实施例中,处理器用于运行脚本生成工具和自动化测试平台。
存储器用于存储指令或程序代码等数据。示例性的,存储器可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
在本申请实施例中,存储器用于存储脚本生成工具和自动化测试平台的软件程序,以及脚本生成工具生成的自动化测试脚本和其他自动化测试所需的文件,例如:测试文件、测试用例等。
作为一种可能的实现方式,存储器可以独立于处理器存在,存储器可以与处理器相连接,用于存储指令或者程序代码。处理器调用并执行存储器中存储的指令或程序代码时,能够实现本申请实施例提供的测试脚本的生成方法。
另一种可能的实现方式中,存储器也可以和处理器集成在一起。
通信接口用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。
在一些实施例中,如图2所示,上述计算设备100还可以与输入输出设备相连。其中,输入输出设备用于与计算设备100进行交互,能够使计算设备100与用户或其他设备进行通信。示例性的,输入输出设备包括以下一项或多项:键盘、鼠标、写字板、麦克风、音响或显示器等。
服务器200,为自动化测试的测试对象,用于接收计算设备100发出的操作指令,并根据该操作指令执行自动化操作,以实现服务器200的自动化测试。
在一些实施例中,服务器200中包括多个子***。其中,多个子***可以为硬件或软件,例如:基本输入输出***(basic input output system,BIOS)、基板管理控制器(baseboard management controller,BMC)、操作***(operating system,OS)、硬盘、磁盘阵列(redundant arrays of independent disks,RAID)、网卡、软磁盘(floppy disk,FD)、网络管理软件(eSight)、网络文件***(network file system,NFS)等。
在一些实施例中,上述计算设备100对服务器200进行自动化测试,包括对服务器200中的多个子***进行自动化测试。例如,计算设备100对服务器200的OS进行OS重启(Reboot)的自动化测试;或者,计算设备100对服务器200的BMC进行控制BMC重启的自动化测试。
需要说明的,本申请实施例描述的***架构是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着***架构的演变,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面对本申请实施例提供的一种脚本生成工具进行具体介绍。
本申请实施例提供的一种脚本生成工具用于自动生成测试脚本。脚本生成工具可以包括多个功能模块,例如:测试用例提取模块、操作函数库、脚本生成模块和测试文件生成模块。下面分别对脚本生成工具中的各个模块进行介绍。
1、测试用例提取模块
测试用例提取模块,用于从测试用例中提取测试任务的信息。其中,测试用例是对子***的测试任务的描述文本。
在一些实施例中,测试用例提取模块包括能够与用户进行交互的UI界面,如此,用户可以在测试用例提取模块的UI界面上,获知从测试用例中提取的测试任务的信息。
2、操作函数库
操作函数库,包括服务器中的各个子***可执行的操作函数。
其中,各个子***可执行的操作函数指的是,将服务器的各个子***可以执行的操作,以代码的形式编写成操作函数。可以理解的是,用代码实现的操作函数,来代替人工对子***进行的操作,可以减少人力投入。
示例性的,假设子***可以执行添加用户的操作、删除用户的操作和修改用户的操作,则该子***可执行的操作函数包括:添加用户的操作函数、删除用户的操作函数和修改用户的操作函数。
在一些实施例中,操作函数包括能够与用户进行交互的UI界面,如此,用户可以在操作函数库的UI界面上,查找操作函数库中的操作函数。
在一些实施例中,上述操作函数库,可以基于服务器的自动化测试框架组件来构建。
其中,如图3所示,服务器的自动化测试框架组件可以将服务器的各个子***封装成类(即将各个子***的各种属性封装成类,例如,子***的版本信息、接口信息等);将服务器的各个子***可执行的操作,编写成用代码实现自动化操作函数;并将操作函数进行封装,归属到各个子***的类中,通过子***的类可以调用该子***的操作函数。
如此,上述基于服务器的自动化测试框架组件构建操作函数库,包括:将服务器的自动化测试框架组件中各个子***的操作函数导入到操作函数库中。
本申请实施例提供的操作函数库中的操作函数是分类存储的。可选的,操作函数库中的操作函数可以按照服务器中的各个子***的类进行分类,即将一个子***的所有操作函数归为一类,类的名称为子***的名称。
示例性的,参见图4,为本申请实施例提供的一种操作函数的UI界面示意图。如图4所示,假设服务器中的各个子***包括:BIOS、BMC、OS等,其中,BIOS的操作函数归属在BIOS的类下;BMC的操作函数归属在BMC的类下;OS的操作函数归属在OS的类下。
3、脚本生成模块
脚本生成模块,用于根据选定的操作函数,生成自动化测试脚本。
在一些实施例中,脚本生成模块包括能够与用户进行交互的UI界面,如此,用户可以在脚本生成模块的UI界面上,配置操作函数的信息(例如配置操作函数的输入变量)和自动化测试脚本的信息(例如配置自动化测试脚本的存放位置)。
4、测试文件生成模块
测试文件生成模块,用于生成测试文件;其中,该测试文件用于自动化测试平台对服务器进行测试。
在一些实施例中,测试文件生成模块包括能够与用户进行交互的UI界面,如此,用户可以在测试文件生成模块的UI界面上,配置测试文件的信息。
以上,为本申请实施例提供的一种脚本生成工具,可以看出,本申请实施例提供的脚本生成工具为包括UI界面的软件,能够根据与用户的交互,生成自动化测试脚本。
在一些实施例中,如图5所示,基于上述脚本生成工具生成自动化测试脚本的流程包括:
流程1、脚本生成工具获取服务器的自动化测试框架组件封装好的服务器的各个子***的操作函数,来构建操作函数库。
在一些实施例中,服务器的自动化测试框架也可以将封装好的服务器的各个子***的类,以及各个子***的操作函数,存储在代码托管中心(CodeHub)中。
流程2、脚本生成工具获取测试用例。
其中,在脚本生成工具获取到测试用例之后,由测试用例提取模块从测试用例中提取测试任务的信息。
流程3、脚本生成工具生成自动化测试脚本。
其中,脚本生成工具中的脚本生成模块根据测试任务信息,选取目标操作函数,进而根据目标操作函数生成自动化测试脚本。
可以看出,基于本申请实施例提供的脚本生成工具,无需人工编写测试脚本,降低了自动化测试脚本开发的入门门槛,提高了自动化测试脚本的开发速度。
下面对本申请实施例提供的一种测试脚本的生成方法进行具体介绍。
本申请提供的测试脚本的生成方法应用于自动生成自动化测试脚本的场景中,例如,在测试服务器的各个子***的场景中,根据各个子***的测试任务的测试用例,自动生成各个子***的测试任务的自动化测试脚本。可选地,本申请提供的测试脚本的生成方法,还可以应用在其他场景中,例如,根据测试对象以及测试对象的测试任务,自动生成测试用例的场景。在此就不再一一举例说明。
需要说明的是,本申请实施例提供的测试脚本的生成方法的执行主体为计算设备中的处理器。
如图6所示,本申请实施例提供的测试脚本的生成方法,该方法应用于上述脚本生成工具。具体的,该方法包括以下步骤:
S301、根据服务器的待测子***的目标测试任务,从目标测试任务的测试用例中提取目标测试任务的测试步骤信息。
其中,上述待测子***可以为服务器的多个子***中的任意一个。上述目标测试任务为对待测子***进行的多个测试任务中的任意一个。可以理解的是,待测子***可能具有多种功能,那么在对待测子***进行测试时,需要对待测子***的多种功能分别进行测试,因此,待测子***的测试任务具有多个。示例性的,假设待测子***为OS,则待测子***的测试任务可以包括:OS控制Reboot的测试任务、OS控制带内下电的测试任务以及OS上下电操作的测试任务等;则目标测试任务可以为上述OS的测试任务中的任意一个。
上述目标测试任务的测试用例是对待测子***的目标测试任务的描述文本。可选的,该测试用例的描述文本中可以包括:用例编号、用例名称、用例级别、预置条件、测试步骤、以及预期结果等信息。其中,用例编号为测试用例的字符标识。用例名称为测试用例的文字标识。用例级别用于表征测试用例描述的目标测试任务的重要程度。示例性的,假设测试用例的用例级别为Level1,则表示目标测试任务测试的是待测子***的基本功能;假设测试用例的用例级别为Level2,则表示目标测试任务测试的是待测子***的一般功能;假设测试用例的用例级别为Level3,则表示目标测试任务测试的是待测子***的重要功能。预置条件,又称为前置条件,指的是执行目标测试任务需要满足的条件;示例性的,若测试用例描述的目标测试任务为测试登录操作的任务,则预置条件为:具备可用于登录的用户账号。测试步骤指的是执行目标测试任务的具体步骤。预期结果指的是执行目标测试任务期望达到的结果。
在一些实施例中,上述从目标测试任务的测试用例中提取目标测试任务的测试步骤信息,可以实现为以下步骤:
步骤a1、确定目标测试任务的测试步骤在目标测试任务的测试用例中的位置。
作为一种可能的实现方式,处理器可以根据目标测试任务的关键词,定位目标测试任务的测试步骤在测试用例中的位置。示例性的,上述关键词可以为目标测试任务的执行动作,动作的执行对象等,本申请实施例对此不作限定。
步骤a2、根据目标测试任务的测试步骤所在的位置,从目标测试任务的测试用例中提取目标测试任务的测试步骤信息。
可以理解的是,目标测试任务的测试步骤信息定义了的目标测试任务的所要执行的操作,因此,在生成目标测试任务的自动化测试脚本的过程中,首先需要获取目标测试任务的测试步骤信息。
在一些实施例中,上述方法还包括:根据服务器的待测子***的目标测试任务,从目标测试任务的测试用例中提取目标测试任务的预置条件信息以及预期结果信息等内容。其中,预置条件信息用于确定执行目标测试任务需要满足的条件;预期结果信息用于确定目标测试任务的自动化测试脚本的返回值。可以理解的是,用户可以根据实际使用需求确定从目标测试任务的测试用例中提取的信息,本申请实施例对此不作限定。
示例性的,参见图7,为本申请实施例提供的一种脚本生成工具的测试用例提取模块的UI界面示意图。假设目标测试任务为OS控制Reboot,则如图7所示,从目标测试任务的测试用例中提取出的信息包括:目标测试任务的预置条件信息、测试步骤信息和预期结果信息。
S302、从操作函数库中获取测试步骤信息对应的目标操作函数。
在一些实施例中,上述目标操作函数包括一个或多个用于对服务器的待测子***执行目标测试任务的操作函数。
作为一种可能的实现方式,上述步骤S302可以实现为:响应于对操作函数库中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
其中,上述目标操作函数是基于目标测试任务的测试步骤信息确定的。示例性的,如图7所示,假设目标测试任务为OS控制Reboot,则目标测试任务的测试步骤信息包括:
【步骤1】正常上电进入OS,检查***BMC日志、OS下的messeages日志以及dmesy日志是否存在异常。
【步骤2】在OS下控制***复位,再次进入OS。
【步骤3】收集BMC日志、OS下的messeages日志以及dmesy日志,并确认是否有异常日志生成。
【步骤4】重复执行【步骤1】至【步骤3】,次数满足稳定性测试要求。
示例性的,根据目标测试任务的测试步骤信息确定的目标操作函数可以包括:
1、BMC控制带内上电。
2、获取BMC日志。
3、获取messeages日志。
4、获取dmesy日志。
5、判断BMC日志、messeages日志以及dmesy日志是否存在异常。
6、OS控制Reboot。
7、获取BMC日志。
8、获取messeages日志。
9、获取dmesy日志。
10、判断BMC日志、messeages日志以及dmesy日志是否存在异常。
11、判断OS是否下电;12、判断OS是否上电。
那么,如图8所示,用户可以从操作函数库中查找到上述目标操作函数,并选中目标操作函数;相应的,处理器响应于对上述目标操作函数的选中操作,获取上述目标操作函数。
在一些实施例中,用户可以根据目标操作函数归属的类,在操作函数中查找目标操作函数,进而选中目标操作函数。例如,假设目标操作函数包括:OS控制Reboot,该操作函数归属于OS类中,因此,用户可以在操作函数库的OS类中查找该操作函数。
可以理解的是,本申请实施例对操作函数库中的操作函数进行分类(例如将一个子***的所有操作函数归为一类,类的名称为子***的名称),使得用户在查找操作函数时,可以根据操作函数归属的类,快速的查找的操作函数,进而选中操作函数。
在一些实施例中,操作函数库还包括服务器中的各个子***可执行的操作函数的描述信息。其中操作函数的描述信息用于对操作函数进行介绍和解释说明。可选的,操作函数的描述信息包括以下一项或多项:操作函数的名称、操作函数功能描述、操作函数归属的类、操作函数的输入变量、操作函数的返回值或操作函数的调用示例。示例性的,如图9所示,以“BMC重启”的操作函数为例,可以看出“BMC重启”的操作函数的描述信息可以包括:“BMC重启”归属的类为:BMC。“BMC重启”的功能描述为:BMC重启,带内OS正常运行,不受影响。“BMC重启”的输入变量的参数名称为:wait(表示等待时长)、timeout(表示中断时长)和allController(表示所有控制器);其中,输入变量的参数值可以为默认值,也可以由用户自行设定。“BMC重启”的返回值可以为“r0,r1”;其中r0表示“BMC重启”失败;r1表示“BMC重启”成功。“BMC重启”的调用示例:self.bmcController.Reboot(wait=Ture)。
作为另一种可能的实现方式,上述步骤S302还可以实现为以下步骤:
步骤b1、从测试步骤信息中提取操作函数的描述信息。
可选的,从测试步骤信息中提取的操作函数的描述信息可以包括以下一项或多项:操作函数的名称、操作函数功能描述、操作函数归属的类、操作函数的输入变量、操作函数的返回值或操作函数的调用示例。
示例性的,假设测试步骤信息包括:在OS下控制***复位,再次进入OS;则从测试步骤信息中提取的操作函数的描述信息可以为:操作函数的名称:OS控制Reboot;和/或,操作函数归属的类:OS;和/或,操作函数的调用示例:self.host.Reboot()。
步骤b2、根据提取的操作函数的描述信息,从操作函数库中筛选一个或多个候选操作函数。
可选的,处理器可以根据提取的操作函数的描述信息的全部信息或部分信息,从操作函数库中筛选一个或多个候选操作函数。可以理解的是,用于筛选的操作函数的描述信息越多,从操作函数库中筛选出的候选操作函数的个数越少,也即筛选结果越精准。
示例性的,参见图10,为本申请实施例提供的一种脚本生成工具的操作函数库的UI界面示意图。假设操作函数的描述信息为“重启”,则从操作函数库中筛选出的一个或多个候选操作函数可以为如图10所示的形式。
步骤b3、响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
具体的,从操作函数库中筛选出的一个或多个候选操作函数中包括目标操作函数,则用户可以选择目标操作函数;相应的,处理器响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
示例性的,根据如图10所示的筛选结果,假设目标操作函数为OS控制Reboot,则如图11所示,响应于对一个或多个候选操作函数中的目标操作函数的选中操作,处理器获取目标操作函数:OS控制Reboot。
在一些实施例中,在候选操作函数有多个的情况下,用户可以分别查看多个候选操作函数的描述信息,以从多个候选操作函数中找到目标操作函数。
可以理解的是,本申请实施例提供的方法中,处理器可以从测试步骤信息中提取出操作函数的描述信息,进而根据操作函数的描述信息,从操作函数库中筛选出一个或多个候选操作函数,进而响应于用户的选中操作,从一个或多个候选操作函数中,获取目标操作函数,如此,相比于相关技术中仅能够根据操作函数的内容进行筛选的方法,本申请提供的方法还可以根据操作函数的描述信息进行筛选,提高了筛选精度,避免漏筛,有效的提高了操作函数筛选的精确度,可以辅助用户快速、准确的获取目标操作函数。
作为又一种可能的实现方式,上述步骤S302还可以实现为以下步骤:
步骤c1、响应于对操作函数库的搜索操作,从搜索函数库中搜索出一个或多个候选操作函数。
其中,上述对操作函数库的搜索操作指的是,用户在搜索函数库的搜索框中输入关键词,并进行搜索的操作。其中,上述关键词,可以为用户从测试步骤信息中提取的操作函数的描述信息。
步骤c2、响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
具体的,从操作函数库中筛选出的一个或多个候选操作函数中包括目标操作函数,则用户可以选择目标操作函数;相应的,处理器响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
可以理解的是,本申请实施例提供的方法中,处理器可以响应于用户的搜索操作,从操作函数库中搜索出一个或多个候选操作函数,进而响应于用户的选中操作,从一个或多个候选操作函数中,获取目标操作函数,如此,该方法可以辅助用户快速、准确的获取目标操作函数。
作为又一种可能的是实现方式,上述步骤S302可以实现为:处理器根据目标测试任务的测试步骤信息,确定目标操作函数;进而处理器从操作函数库中获取目标操作函数。示例性的,处理器可以将目标测试任务的测试步骤信息输入至操作函数确定模型中,根据操作函数确定模型的输出结果,确定目标操作函数。其中,上述操作函数确定模型可以是根据标定好操作函数的测试步骤信息作为训练样本进行训练。
可以理解的是,本申请实施例提供的操作函数库还包括操作函数的描述信息,如此,处理器可以根据提取出的操作函数的描述信息,从操作函数库中筛选一个或多个候选操作函数;进而从一个或多个候选操作函数中确定目标操作函数。如此,相比于相关技术中,仅能够根据操作函数的内容进行筛选的方法,本申请实施例提供的方法还可以根据操作函数的描述信息进行筛选,提高了筛选精度,避免漏筛;并且,在筛选出一个或多个候选函数之后,还可以根据一个或多个候选操作函数的描述信息,确定目标操作函数,有效的提高了操作函数筛选的精确度。
此外,用户还可以根据操作函数的描述信息获知操作函数的功能、调用方法等信息,这样一来,即便用户不了解编程,也可以根据操作函数的描述信息来选择合适的操作函数,降低了测试脚本开发的入门门槛。
S303、基于目标操作函数,生成自动化测试脚本。
其中,自动化测试脚本用于对待测子***执行目标测试任务。
在一些实施例中,上述步骤S303可以实现为:接收用户对目标操作函数的输入变量的设置操作;在用户对目标函数的输入变量设置完成之后,基于目标操作函数,生成自动化测试工具。其中,上述设置操作可以为将目标操作函数的输入变量的参数值设置为目标值。可以理解的是,用户可以根据实际使用需求,对目标操作函数的输入变量进行修改,以使得根据目标操作函数生成的目标自动化测试脚本,可以满足不同的测试场景。
在一些实施例中,在基于目标操作函数生成自动化测试脚本的过程中,上述方法还包括:在自动化测试脚本中的目标操作函数的代码前添加实例化的测试对象。其中,测试对象包括:服务器中的待测子***。示例性的,BMC重启的操作函数为:Reboot(wait=True),该操作函数不包括测试对象,因此在生成自动化测试脚本时,需要在该操作函数的代码前,添加实例化的测试对象:self.bmcController.Reboot(wait=True)。可以理解的是,操作函数库中的操作函数均为方法本身,不包括函数的测试对象,因此,本申请实施例提供的方法还包括在自动化测试脚本中的目标操作函数的代码前添加实例化的测试对象。
在一些实施例中,上述目标操作函数包括用于执行测试步骤的操作函数;其中,上述用于执行测试步骤的操作函数是目标测试任务的测试步骤信息对应的操作函数。则上述步骤S303可以实现为:根据用于执行测试步骤的操作函数,生成自动化测试脚本。
可以理解的是,本申请实施例可以根据目标测试任务的测试步骤信息确定用于执行测试步骤的操作函数;进而根据用于执行测试步骤的操作函数,生成自动化测试脚本。如此,该自动化测试脚本可以用于对服务器的待测子***执行目标测试任务。
示例性的,参见图12,为本申请实施例提供的一种脚本生成工具中的脚本生成模块的UI界面示意图。假设目标测试任务为OS控制Reboot,则在生成测试脚本时,可以根据如图12所示的,用于执行测试步骤的操作函数生成自动化测试脚本。
在另一些实施例中,上述目标操作函数还包括:用于恢复测试环境的操作函数;其中,用于恢复测试环境的操作函数指的是,在用于执行测试步骤的操作函数执行完之后,恢复服务器的测试环境。具体的,在用于执行测试步骤的操作函数执行完之后,判断服务器的当前环境是否满足测试环境,若不满足则从操作函数库中获取用于恢复测试环境的操作函数。
可选的,用于恢复测试环境的操作函数,可以根据服务器的测试环境确定。示例性的,假设服务器的测试环境包括:BMC上电,则用于恢复测试环境的操作函数包括:判断BMC是否上电的操作函数和控制BMC上电的操作函数。
如此,上述步骤S303可以实现为:根据用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。
可以理解的是,本申请实施例还可以根据服务器的测试环境,确定用于恢复测试环境的操作函数;进而根据用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。如此,该自动化测试脚本可以用于对服务器的待测子***执行目标测试任务,并在执行完目标测试任务之后,恢复服务器的测试环境。
示例性的,参见图13,为本申请实施例提供的一种脚本生成工具中的脚本生成模块的UI界面示意图。假设目标测试任务为OS控制Reboot,则在生成测试脚本时,可以根据如图13所示的,用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。
在一些实施例中,上述方法还包括:将生成的自动化测试脚本存放在指定的存储空间。可选的,生成的自动化测试脚本的UI界面中包括选择脚本存放位置的控件(例如,如图13所示的浏览控件),用户可以通过点击该控件选择自动化测试脚本的存放的存储空间,使处理器将生成的自动化测试脚本存放在该存储空间中。
可以理解的是,本申请实施例通过的测试脚本的生成方法可以根据目标测试任务的测试用例,获取目标测试任务的测试步骤信息,进而根据目标测试任务的测试步骤信息从操作函数库中获取目标操作函数,最终根据目标操作函数自动生成自动化测试脚本。可以看出,基于本申请实施例提供的测试脚本的生成方法,用户仅需根据目标测试任务的测试步骤信息从操作函数库中选择对应的操作函数即可,无需人工编写测试脚本,降低了自动化测试脚本开发的入门门槛,提高了自动化测试脚本的开发速度。
在一些实施例中,在上述步骤S303之后,上述方法还包括:生成测试文件;测试文件包括:测试套文件和测试床文件;其中,测试套文件用于记录自动化测试脚本的代码;测试床文件用于记录测试环境信息。
示例性的,上述生成测试文件,可以实现为以下步骤:
步骤d1、根据自动化测试脚本中的代码,生成测试套文件。
在一些实施例中,上述步骤d1可以实现为,根据自动化测试脚本的存放路径,获取自动化测试脚本,进而根据自动化测试脚本中的代码,生成测试套文件。
在一些实施例中,上述方法还包括:根据目标测试用例的存放路径获取目标测试用例;则上述步骤d1还可以实现为:根据目标测试用例和自动化测试脚本,生成测试套文件。
示例性的,参见图14,为本申请实施例提供的一种脚本生成工具中的测试文件生成模块的UI界面示意图。用户可以在如图14所示的设置测试套信息的界面,通过点击浏览测试用例存放路径的控件,选择目标测试用例的存放路径,进而获取目标测试用例;通过点击浏览自动化测试脚本存放路径的控件,选择自动化测试脚本的存放路径,进而获取自动化测试脚本。
在一些实施例中,上述方法还包括:将生成的测试套文件存放在指定的存储空间。可选的,生成测试文件的UI界面中包括选择测试套文件存放位置的控件(例如,如图14所示的浏览控件),用户可以通过点击该控件选择测试套文件的存储空间,使处理器将生成的测试套文件存放在该存储空间中。
步骤d2、根据自动化测试脚本所对应的服务器的测试环境信息,生成测试床文件。
在一些实施例中,上述服务器的测试环境包括:服务器中的各个子***的接口信息,例如,服务器中的BMC的接口信息、OS的接口信息、eSight的接口信息、FD的接口信息以及NFS的接口信息等。因此,上述步骤d2可以实现为:根据自动化测试脚本所对应的服务器中的各个子***的接口信息,生成测试床文件。
在一些实施例中,在步骤d2之前,上述方法还包括:获取测试环境信息。示例性的,用户可以在如图14所示的测试床信息设置界面,设置测试床信息(也即测试环境信息),以使得处理器获取测试环境信息。其中,测试环境信息可以包括服务器的BMC互联网协议(internet protocol,IP)、BMC用户名、BMC密码;服务器的OS IP、OS用户名、OS密码;服务器的eSight IP、eSight用户名、eSight密码;服务器的FD IP、FD用户名、FD密码;服务器的NFSIP、NFS用户名、NFS密码;以及服务器的图形用户界面(graphical user interface,GUI)执行机的IP。
在一些实施例中,上述方法还包括:将生成的测试床文件存放在指定的存储空间。可选的,生成测试文件的UI界面中包括选择测试床文件存放位置的控件(例如,如图14所示的浏览控件),用户可以通过点击该控件选择测试床文件的存储空间,使处理器将生成的测试床文件存放在该存储空间中。
可以理解的是,由于测试床文件用于记录自动化测试脚本所对应的服务器的测试环境信息,因此,自动化测试平台能够根据测试床文件获取目标测试任务的测试环境,与目标测试任务的测试对象(即待测子***)建立连接,以及与待测子***所在的服务器建立连接。由于测试套文件用于记录自动化测试脚本中的代码,因此,自动化测试平台能够根据测试套文件获取目标测试任务的自动化测试脚本中的代码,进而根据自动化测试脚本中的代码对待测子***执行目标测试任务。
上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,脚本生成装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对脚本生成装置分别进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图15所示,本申请实施例提供了一种脚本生成装置,用于执行如图6所示的测试脚本的生成方法。该脚本生成装置400包括:提取模块401、获取模块402和生成模块403。在另一些实施例中,脚本生成装置400还可以包括:筛选模块404。
提取模块401,用于根据服务器的待测子***的目标测试任务,从目标测试任务的测试用例中提取目标测试任务的测试步骤信息。
获取模块402,用于从操作函数库中获取测试步骤信息对应的目标操作函数;其中,操作函数库包括服务器中的各个子***可执行的操作函数,目标操作函数包括一个或多个用于对服务器的待测子***执行目标测试任务的操作函数。
生成模块403,用于基于目标操作函数,生成自动化测试脚本,自动化测试脚本用于对待测子***执行目标测试任务。
在一种可能的实现方式中,上述获取模块402,具体用于响应于对操作函数库中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数;目标操作函数是基于测试步骤信息确定的。
另一种可能的实现方式中,上述操作函数库还包括服务器中的各个子***可执行的操作函数的描述信息;上述提取模块401,还用于从测试步骤信息中提取操作函数的描述信息;上述筛选模块404,用于根据提取的操作函数的描述信息,从操作函数库中筛选一个或多个候选操作函数;上述获取模块402,具体用于响应于对一个或多个候选操作函数中的目标操作函数的选中操作,获取测试步骤信息对应的目标操作函数。
另一种可能的实现方式中,上述目标操作函数包括用于执行测试步骤的操作函数;上述生成模块403,具体用于根据用于执行测试步骤的操作函数,生成自动化测试脚本。
另一种可能的实现方式中,上述目标操作函数还包括:用于恢复测试环境的操作函数;上述生成模块403,具体用于根据用于执行测试步骤的操作函数和用于恢复测试环境的操作函数,生成自动化测试脚本。
另一种可能的实现方式中,上述生成模块403,还用于生成测试文件;测试文件包括:测试套文件和测试床文件;其中,测试套文件用于记录自动化测试脚本的代码;测试床文件用于记录测试环境信息。
另一种可能的实现方式中,上述操作函数的描述信息包括以下一项或多项:操作函数的名称、操作函数的功能描述、操作函数归属的类、操作函数的输入变量、操作函数的输出变量或操作函数的调用示例。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将脚本生成装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机指令来指示相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的或内存。上述计算机可读存储介质也可以是上述计算设备的外部存储设备,例如上述计算设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述计算设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述计算设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供一种计算机程序产品,该计算机产品包含计算机程序,当该计算机程序产品在计算机上运行时,使得该计算机执行上述实施例中所提供的任一项测试脚本的生成方法。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(Comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种测试脚本的生成方法,其特征在于,包括:
根据服务器的待测子***的目标测试任务,从所述目标测试任务的测试用例中提取所述目标测试任务的测试步骤信息;
从操作函数库中获取所述测试步骤信息对应的目标操作函数;其中,所述操作函数库包括所述服务器中的各个子***可执行的操作函数,所述目标操作函数包括一个或多个用于对所述服务器的待测子***执行所述目标测试任务的操作函数;
基于所述目标操作函数,生成自动化测试脚本,所述自动化测试脚本用于对所述待测子***执行所述目标测试任务。
2.根据权利要求1所述的方法,其特征在于,所述从操作函数库中获取所述测试步骤信息对应的目标操作函数,包括:
响应于对所述操作函数库中的所述目标操作函数的选中操作,获取所述测试步骤信息对应的目标操作函数;所述目标操作函数是基于所述测试步骤信息确定的。
3.根据权利要求2所述的方法,其特征在于,所述操作函数库还包括所述服务器中的各个子***可执行的操作函数的描述信息;所述方法还包括:
从所述测试步骤信息中提取操作函数的描述信息;
根据提取的所述操作函数的描述信息,从所述操作函数库中筛选一个或多个候选操作函数;
所述响应于对所述操作函数库中的所述目标操作函数的选中操作,获取所述测试步骤信息对应的目标操作函数,包括:
响应于对所述一个或多个候选操作函数中的所述目标操作函数的选中操作,获取所述测试步骤信息对应的目标操作函数。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述目标操作函数包括用于执行测试步骤的操作函数;
所述基于所述目标操作函数,生成自动化测试脚本,包括:
根据所述用于执行所述测试步骤的操作函数,生成所述自动化测试脚本。
5.根据权利要求4所述的方法,其特征在于,所述目标操作函数还包括:用于恢复测试环境的操作函数;所述基于所述目标操作函数,生成自动化测试脚本,包括:
根据所述用于执行所述测试步骤的操作函数和用于恢复测试环境的操作函数,生成所述自动化测试脚本。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
生成测试文件;所述测试文件包括:测试套文件和测试床文件;其中,所述测试套文件用于记录所述自动化测试脚本的代码;所述测试床文件用于记录测试环境信息。
7.根据权利要求3至6任一项所述的方法,其特征在于,所述操作函数的描述信息包括以下一项或多项:所述操作函数的名称、所述操作函数的功能描述、所述操作函数归属的类、所述操作函数的输入变量、所述操作函数的输出变量或所述操作函数的调用示例。
8.一种脚本生成装置,其特征在于,包括:提取模块,用于根据服务器的待测子***的目标测试任务,从所述目标测试任务的测试用例中提取所述目标测试任务的测试步骤信息;获取模块,用于从操作函数库中获取所述测试步骤信息对应的目标操作函数;其中,所述操作函数库包括所述服务器中的各个子***可执行的操作函数,所述目标操作函数包括一个或多个用于对所述服务器的待测子***执行所述目标测试任务的操作函数;生成模块,用于基于所述目标操作函数,生成自动化测试脚本,所述自动化测试脚本用于对所述待测子***执行所述目标测试任务。
9.一种脚本生成装置,其特征在于,包括:接口和逻辑电路,所述逻辑电路用于执行如权利要求1至7任一项所述的测试脚本的生成方法。
10.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;所述处理器与所述存储器耦合;所述存储器用于存储计算机指令,所述计算机指令由所述处理器加载并执行以使计算设备实现如权利要求1至7任一项所述的测试脚本的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211436814.0A CN116166525A (zh) | 2022-11-16 | 2022-11-16 | 一种测试脚本的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211436814.0A CN116166525A (zh) | 2022-11-16 | 2022-11-16 | 一种测试脚本的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166525A true CN116166525A (zh) | 2023-05-26 |
Family
ID=86417077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211436814.0A Pending CN116166525A (zh) | 2022-11-16 | 2022-11-16 | 一种测试脚本的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166525A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112450A (zh) * | 2023-10-24 | 2023-11-24 | 卡斯柯信号(北京)有限公司 | 测试临时限速服务器的方法及装置 |
CN117472785A (zh) * | 2023-12-25 | 2024-01-30 | 银河麒麟软件(长沙)有限公司 | Linux***下的Openstack测试方法及*** |
-
2022
- 2022-11-16 CN CN202211436814.0A patent/CN116166525A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112450A (zh) * | 2023-10-24 | 2023-11-24 | 卡斯柯信号(北京)有限公司 | 测试临时限速服务器的方法及装置 |
CN117112450B (zh) * | 2023-10-24 | 2024-03-26 | 卡斯柯信号(北京)有限公司 | 测试临时限速服务器的方法及装置 |
CN117472785A (zh) * | 2023-12-25 | 2024-01-30 | 银河麒麟软件(长沙)有限公司 | Linux***下的Openstack测试方法及*** |
CN117472785B (zh) * | 2023-12-25 | 2024-04-16 | 银河麒麟软件(长沙)有限公司 | Linux***下的Openstack测试方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9069903B2 (en) | Multi-platform test automation enhancement | |
CN108845930B (zh) | 界面操作测试方法和装置、存储介质及电子装置 | |
CN110765026B (zh) | 自动化测试方法、装置、存储介质及设备 | |
CN116166525A (zh) | 一种测试脚本的生成方法及装置 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN114546738B (zh) | 服务器通用测试方法、***、终端及存储介质 | |
CN108874649B (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
CN109614325B (zh) | 一种确定控件属性的方法及装置、电子设备和存储介质 | |
CN111462811A (zh) | 自动化测试方法、装置、存储介质和电子设备 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
EP3413149B1 (en) | Field device commissioning system and field device commissioning method | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
CN111475412B (zh) | 软件测试方法、装置、电子设备和计算机可读存储介质 | |
CN111414309A (zh) | 应用程序的自动化测试方法、计算机设备和存储介质 | |
CN112860587A (zh) | Ui自动测试方法和装置 | |
CN114201382A (zh) | 测试用例生成方法、装置、存储介质和电子设备 | |
CN111813648A (zh) | 一种应用于App的自动化测试方法、装置、存储介质及电子设备 | |
CN115237441A (zh) | 一种基于云平台的升级测试方法、装置及介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
CN116775202A (zh) | 模糊测试方法、装置、介质、电子设备及计算机程序产品 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN114143235A (zh) | Nfv自动测试方法、装置、设备及存储介质 | |
US20180011784A1 (en) | Method for Testing a Graphical Interface and Corresponding Test System | |
Subramanian et al. | Class coverage GUI testing for Android applications | |
CN112231207A (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 |