CN116521538A - 命令行界面自动测试方法、装置、电子设备及存储介质 - Google Patents
命令行界面自动测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116521538A CN116521538A CN202310449633.XA CN202310449633A CN116521538A CN 116521538 A CN116521538 A CN 116521538A CN 202310449633 A CN202310449633 A CN 202310449633A CN 116521538 A CN116521538 A CN 116521538A
- Authority
- CN
- China
- Prior art keywords
- test
- parameters
- generating
- original code
- line interface
- 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 496
- 238000013515 script Methods 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000010998 test method Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 34
- 238000005070 sampling Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XSQUKJJJFZCRTK-NJFSPNSNSA-N UREA C 14 Chemical compound N[14C](N)=O XSQUKJJJFZCRTK-NJFSPNSNSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/3676—Test management for coverage analysis
-
- 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
-
- 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/3692—Test management for test results analysis
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为本发明实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的如图1所示的命令行界面自动测试方法的流程示意图,其中响应于接收到用户发送的命令行界面的自动化测试指令,获取命令行界面的原始码文件;再根据第一参数信息和选项节点对应的第二参数信息生成多个原始码参数;然后校验多个原始码参数是否合法;若是,则根据字符串选项的第一选项值和极限值的第二选项值计算出测试参数的测试参数总数;之后确定测试参数总数是否大于用户设置的第一总数阈值,若否,则根据测试参数生成测试用例和测试脚本并执行自动化测试;若是,则通过随机采样或者修改测试参数中的极限值来降低测试参数的测试参数总数即选择适当的测试参数样本来生成测试用例和测试脚本,最终执行自动化测试。
在一个实施例中,如图2所示,本发明提供一种命令行界面自动化测试方法,所述方法包括:
S201、响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;
S202、根据所述原始码文件生成多个原始码参数;
S203、根据所述多个原始码参数生成测试参数;
S204、根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
具体的,在接收到用户发送的命令行界面的自动化测试指令后,获取命令行界面原始码文件,其中原始码文件一般为XML格式,将原始码文件解析生成多个原始码参数并将多个原始码参数组合生成测试参数,根据测试参数生成自动化测试所需的测试用例和测试脚本并最终完成自动化测试。
在其中一个实施例中,所述根据所述原始码文件生成多个原始码参数包括:
读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
具体的,当原始码文件是XML格式时,可以采用流行的Python编程语言并运用其相关的标准库和第三方库,在原始码文件中CommandLineInterface节点(根节点)包含了Command(命令)节点(子节点),获取每个子节点的第一参数信息,比如一个Command节点中包含以下信息:“<Commandname="acl"format="string"range=["access","deny"]”,通过解析得到“acl”是该Command节点的参数名称,“string”是字符串类型,“access”和“deny”是字符串的两种选项,最终生成的原始码参数为acl["access","deny"]。而每个Command节点中还包含了多个Option节点(选项节点),通过解析每个选项节点得到第二参数信息,包括参数名、数据类型、极限值和默认值等。比如一个Option节点中包含以下信息:“<Optionname="dscp"format="int"range=[0-127]”,通过解析得知“dscp”是该Option节点的参数名称,“int”是数据类型,“0-127”为极限值,其中极限值为参数的取值范围,最终生成的原始码参数为dscp[0-127]。再比如一个Option节点中包含以下信息:“<Optionname="src-ip"format="ipv4"range=["192.168.1.1-253"]”,通过解析得到“src-ip”是参数名称,“ipv4”是数据类型,“192.168.1.1-253”是极限值,最终生成的原始码参数为src-ip["192.168.1.1-253"]。
在其中一个实施例中,所述根据所述多个原始码参数生成测试参数包括:
校验所述多个原始码参数是否都合法;
若是,则将所述多个原始码参数排列组合生成所述测试参数;
若否,则向所述用户告警。
具体的,如上所述,可以通过输入数据类型和极限值后查询数据库来校验“acl["access","deny"]”、“dscp[0-127]”、“src-ip["192.168.1.1-253"]”是否合法,如果合法,则排列组合后生成测试参数,如下:“acl["access","deny"]dscp[0-127]src-ip["192.168.1.1-253"]”。如果其中最少有一个原始码参数不合法,则向用户告警并由用户对该原始码参数进行修改。
在其中一个实施例中,所述根据所述多个原始码参数生成测试参数还包括:
根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
具体的,其中acl["access","deny"]中字符串选项("access","deny")的选项值为2,src-ip["192.168.1.1-253"]中极限值(192.168.1.1-253)的选项值为253,dscp[0-127]中极限值(0-127)的选项值为128,将三个选项值相乘得到的测试参数总数为64768。如果设置的第一总数阈值为70000,则无需其余操作直接根据该测试参数生成对应的测试用例和测试脚本并执行命令行界面的自动化测试。如果用户设置的第一总数阈值为60000,则继续确定测试参数总数是否大于所述用户设置的第二总数阈值。
在其中一个实施例中,所述确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
具体的,如上所述,如果用户设置的第二总数阈值为65000,此时采用随机采样的方法,根据第一参数总数阈值(60000)从该测试参数随机采用60000个测试参数样本,比如“acl["access","deny"]dscp[3]src-ip["192.168.1.200"]”,“acl["access","deny"]dscp[120]src-ip["192.168.1.156"]”等。根据随机采样后的测试参数生成测试用例和测试脚本;如果用户设置的第二总数阈值为64000,因为测试参数总数大于第二总数阈值,此时随机采样太耗时,直接根据60000的第一总数阈值修改“acl["access","deny"]dscp[0-127]src-ip["192.168.1.1-253"]”中的极限值。
在其中一个实施例中,所述根据所述第一总数阈值修改所述测试参数中的极限值包括:
减小所述测试参数中的极限值并重新计算所述测试参数总数;
确定重新计算的测试参数总数是否大于所述第一总数阈值;
若是,则继续减小所述测试参数中的极限值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
具体的,如上所述,可以将测试参数中的极限值(192.168.1.1-253)减小为(192.168.1.1-250),修改后计算出的测试参数总数为2乘250乘128等于64000仍大于60000的第一总数阈值,则继续修改直到测试参数总数小于第一总数阈值。也可以将测试参数中的极限值(0-127)减小为(0-100),修改后计算出的测试参数总数为2乘253乘101等于51106不大于60000的第一总数阈值,此时根据“acl["access","deny"]dscp[0-100]src-ip["192.168.1.1-253"]”生成测试用例和测试脚本。
在其中一个实施例中,所述根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
具体的,在生成测试用例和测试脚本时,可以使用多种自动化测试框架和工具,如RobotFramework(一种自动化测试平台)或者pytest(一种测试框架)。这些工具都提供了各种函数和库,可以帮助用户编写测试脚本和测试用例。测试用例需由上述的测试框架搭配测试参数产生出来,用于模拟用户在命令行界面上输入指令和参数的操作,并验证系统是否正确响应。在执行自动化测试后,自动化测试软件会进行自动化验证,根据测试用例中预设的预期结果和最终的测试结果计算出误差率,比如用不同于预期结果的测试结果除以测试结果总数得到误差率等,如果误差率高于用户设置的误差阈值比如百分之十,则向用户进行告警。
本申请的方案有如下有益效果:
1)通过分析命令行界面的原始码,自动生成并排列组合产出合理的测试参数后进行自动化测试,无须用户撰写测试参数的同时提高代码覆盖率,减轻了用户的工作压力;
2)在自动化测试后进行自动化验证,当测试结果与预设的预期结果相差较大时,向用户告警以避免自动化测试异常。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供一种命令行界面自动化测试装置,所述装置包括:
获取模块301,响应于接收到用户发送的命令行界面的自动化测试指令,用于获取所述命令行界面的原始码文件;
第一参数生成模块302,用于根据所述原始码文件生成多个原始码参数;
第二参数生成模块303,用于根据所述多个原始码参数生成测试参数;
测试模块304,用于根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
在其中一个实施例中,所述第一参数生成模块根据所述原始码文件生成多个原始码参数包括:
读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
在其中一个实施例中,所述第二参数生成模块根据所述多个原始码参数生成测试参数包括:
校验所述多个原始码参数是否都合法;
若是,则将所述多个原始码参数排列组合生成所述测试参数;
若否,则向所述用户告警。
在其中一个实施例中,所述第二参数生成模块根据所述多个原始码参数生成测试参数还包括:
根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
在其中一个实施例中,所述第二参数生成模块确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
在其中一个实施例中,所述第二参数生成模块根据所述第一总数阈值修改所述测试参数中的极限值包括:
减小所述测试参数中的极限值并重新计算所述测试参数总数;
确定重新计算的测试参数总数是否大于所述第一总数阈值;
若是,则继续减小所述测试参数中的极限值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
在其中一个实施例中,所述测试模块根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
关于命令行界面自动测试装置的具体限定可以参见上文中对于命令行界面自动测试方法的限定,在此不再赘述。上述命令行界面自动测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现告警信息处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;
根据所述原始码文件生成多个原始码参数;
根据所述多个原始码参数生成测试参数;
根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
所述根据所述原始码文件生成多个原始码参数包括:
读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
所述根据所述多个原始码参数生成测试参数包括:
校验所述多个原始码参数是否都合法;
若是,则将所述多个原始码参数排列组合生成所述测试参数;
若否,则向所述用户告警。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
所述根据所述多个原始码参数生成测试参数还包括:
根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
所述确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
所述根据所述第一总数阈值修改所述测试参数中的极限值包括:
减小所述测试参数中的极限值并重新计算所述测试参数总数;
确定重新计算的测试参数总数是否大于所述第一总数阈值;
若是,则继续减小所述测试参数中的极限值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
所述根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;
根据所述原始码文件生成多个原始码参数;
根据所述多个原始码参数生成测试参数;
根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
所述根据所述原始码文件生成多个原始码参数包括:
读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
所述根据所述多个原始码参数生成测试参数包括:
校验所述多个原始码参数是否都合法;
若是,则将所述多个原始码参数排列组合生成所述测试参数;
若否,则向所述用户告警。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
所述根据所述多个原始码参数生成测试参数还包括:
根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
所述确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
所述根据所述第一总数阈值修改所述测试参数中的极限值包括:
减小所述测试参数中的极限值并重新计算所述测试参数总数;
确定重新计算的测试参数总数是否大于所述第一总数阈值;
若是,则继续减小所述测试参数中的极限值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
所述根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种命令行界面自动化测试方法,所述方法包括:
响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;
根据所述原始码文件生成多个原始码参数;
根据所述多个原始码参数生成测试参数;
根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所述原始码文件生成多个原始码参数包括:
读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个原始码参数生成测试参数包括:
校验所述多个原始码参数是否都合法;
若是,则将所述多个原始码参数排列组合生成所述测试参数;
若否,则向所述用户告警。
4.根据权利要求2所述的方法,其特征在于,所述根据所述多个原始码参数生成测试参数还包括:
根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
5.根据权利要求4所述的方法,其特征在于,所述确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一总数阈值修改所述测试参数中的极限值包括:
减小所述测试参数中的极限值并重新计算所述测试参数总数;
确定重新计算的测试参数总数是否大于所述第一总数阈值;
若是,则继续减小所述测试参数中的极限值;
若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
7.根据权利要求1所述的方法,其特征在于,所述根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
8.一种命令行界面自动化测试装置,所述装置包括:
获取模块,响应于接收到用户发送的命令行界面的自动化测试指令,用于获取所述命令行界面的原始码文件;
第一参数生成模块,用于根据所述原始码文件生成多个原始码参数;
第二参数生成模块,用于根据所述多个原始码参数生成测试参数;
测试模块,用于根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如权利要求1~7中任一所述的方法。
10.一种计算机存储介质,其特征在于,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1~7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310449633.XA CN116521538A (zh) | 2023-04-24 | 2023-04-24 | 命令行界面自动测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310449633.XA CN116521538A (zh) | 2023-04-24 | 2023-04-24 | 命令行界面自动测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521538A true CN116521538A (zh) | 2023-08-01 |
Family
ID=87391500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310449633.XA Pending CN116521538A (zh) | 2023-04-24 | 2023-04-24 | 命令行界面自动测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521538A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667046A (zh) * | 2024-01-31 | 2024-03-08 | 英诺达(成都)电子科技有限公司 | 命令解析方法、装置、电子设备、存储介质及程序产品 |
-
2023
- 2023-04-24 CN CN202310449633.XA patent/CN116521538A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667046A (zh) * | 2024-01-31 | 2024-03-08 | 英诺达(成都)电子科技有限公司 | 命令解析方法、装置、电子设备、存储介质及程序产品 |
CN117667046B (zh) * | 2024-01-31 | 2024-04-12 | 英诺达(成都)电子科技有限公司 | 命令解析方法、装置、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408375B (zh) | 接口文档的生成方法和装置 | |
CN110704304B (zh) | 一种应用程序测试方法、装置、存储介质和服务器 | |
US20240121261A1 (en) | Automated Security Analysis of Software Libraries | |
CN111753306B (zh) | 一种智能合约漏洞检测方法、装置、电子设备及存储介质 | |
CN111124870A (zh) | 一种接口测试方法及装置 | |
CN109871312B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN112257054B (zh) | 一种软件应用越权风险检测方法、电子设备及存储介质 | |
CN113282513B (zh) | 接口测试案例的生成方法、装置、计算机设备及存储介质 | |
KR102496539B1 (ko) | 소프트웨어 검증 방법 및 이를 위한 장치 | |
CN116521538A (zh) | 命令行界面自动测试方法、装置、电子设备及存储介质 | |
CN113094252B (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN111679979A (zh) | 破坏性测试方法及装置 | |
CN110908903B (zh) | 一种基于可编辑yaml文件的测试方法 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN110032781B (zh) | 编辑时序约束方法、装置、计算机设备及存储介质 | |
KR100777103B1 (ko) | 테스트 드라이버 생성 장치 및 방법 | |
CN115470152A (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
CN112463431B (zh) | 一种bios错误定位方法、装置、设备及存储介质 | |
CN113282476A (zh) | 接口性能测试方法、装置和电子设备 | |
CN111274128A (zh) | 测试方法、装置、计算机设备及计算机可读存储介质 | |
CN111401020A (zh) | 一种界面加载方法、系统和计算设备 | |
CN110716855B (zh) | 处理器指令集测试方法及装置 | |
CN114706785B (zh) | 一种覆盖率过滤文件生成方法、装置、设备及介质 | |
CN115509901A (zh) | 模拟数据发生方法、装置、计算机设备和存储介质 | |
CN115269400A (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 |