CN109324961B - 系统自动测试方法、装置、计算机设备及存储介质 - Google Patents
系统自动测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109324961B CN109324961B CN201810919777.6A CN201810919777A CN109324961B CN 109324961 B CN109324961 B CN 109324961B CN 201810919777 A CN201810919777 A CN 201810919777A CN 109324961 B CN109324961 B CN 109324961B
- Authority
- CN
- China
- Prior art keywords
- test
- module
- value
- standard value
- output value
- 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.)
- Active
Links
- 238000010998 test method Methods 0.000 title claims abstract description 24
- 238000012360 testing method Methods 0.000 claims abstract description 672
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013102 re-test Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101710154918 Trigger factor Proteins 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/3692—Test management for test results 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
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)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种系统自动测试方法、装置、计算机设备及存储介质,该方法包括:获取测试请求,根据测试请求获取标准值报告,解析标准值报告,获取测试参数和系统中各个模块的测试标准值,根据测试参数对起始模块进行测试。获取起始模块的测试输出值,将测试输出值与起始模块的测试标准值进行比较,得到测试结果,然后根据测试结果获取下一模块的测试输入值并对下一模块进行测试,再按照系统中各个模块的运行逻辑,依序测试系统中的各个模块,获取系统测试报告。通过将测试输出值与测试标准值进行对比,根据测试结果自动获取下一模块的测试输入值,自动对系统中各个模块进行测试,从而使得系统测试自动化,节省了测试时间,提高了测试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种系统自动测试方法、装置、计算机设备及存储介质。
背景技术
系统测试就是利用软件测试工具按照测试方案和系统运行的模块对所开发的系统进行功能和性能测试,以对开发的系统可能出现的问题进行分析和评估,跟踪测试过程中的故障,以确保开发的产品适合需求。
在软件系统测试过程中,一般会按照系统运行的模块,对开发的系统进行测试,若某一测试过程出现故障,则测试终止,开发人员针对当前故障进行检验和维护,然后再对系统进行一遍测试,这样增加了时间成本,也使得测试效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种系统自动测试方法、装置、计算机设备及存储介质,以提高系统测试效率。
一种系统自动测试方法,包括:
获取测试请求,根据所述测试请求获取标准值报告;
解析所述标准值报告,获取测试参数和所述系统中各个模块的测试标准值,根据所述测试参数对起始模块进行测试;
获取所述起始模块的测试输出值,将所述测试输出值与所述起始模块的测试标准值进行比较,得到测试结果;
根据所述测试结果获取下一模块的测试输入值,根据所述测试输入值对所述下一模块进行测试;
按照系统中各个模块的运行逻辑,依序测试所述系统中的各个模块,获取系统测试报告。
一种系统自动测试装置,包括:
测试请求获取模块,用于获取测试请求,根据所述测试请求获取标准值报告;
标准值报告解析模块,用于解析所述标准值报告,获取测试参数和所述系统中各个模块的测试标准值,根据所述测试参数对起始模块进行测试;
测试结果获取模块,用于获取所述起始模块的测试输出值,将所述测试输出值与所述起始模块的测试标准值进行比较,得到测试结果;
测试模块,用于根据所述测试结果获取下一模块的测试输入值,根据所述测试输入值对所述下一模块进行测试;
循环模块,用于按照系统中各个模块的运行逻辑,依序测试所述系统中的各个模块,获取系统测试报告。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述系统自动测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述系统自动测试方法的步骤。
上述系统自动测试方法、装置、计算机设备及存储介质,通过解析标准值报告,获取测试参数和各模块的测试标准值,对起始模块进行测试,然后将起始模块的测试输出值与测试标准值进行比较,根据测试结果对下一模块进行测试,通过按照系统中各个模块的运行逻辑依序测试系统中的各个模块,获取系统测试报告,完成整个系统所有模块的测试,以便进行一次测试,即可排查出系统全部有问题的模块,从而使得系统测试自动化,节省了测试时间,以提高系统测试效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中系统自动测试方法的一应用环境示意图;
图2是本发明一实施例中提供的系统自动测试方法的一实现示意图;
图3是图2中步骤S20的一实现示意图;
图4是图2中步骤S30的一实现示意图;
图5是图2中步骤S40的一实现示意图;
图6是图5中步骤S42的一实现示意图;
图7是图2中步骤S50的一实现示意图;
图8是本发明一实施例中系统自动测试装置的一示意图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。根据本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的系统自动测试方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务端进行通信。用户通过客户端发起测试请求,客户端将测试请求发送至服务端,服务端根据测试请求获取标准值报告,并对起始模块进行测试,然后结合测试输出值与测试标准值的测试结果,对下一模块进行测试,并按照系统中各个模块的运行逻辑,依序测试系统中的各个模块。其中,客户端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2示出本实施例中系统自动测试方法的示意图。该系统自动测试方法应用在服务端中,用于对系统进行自动测试,从而自动化测试系统中的各个模块,节省测试时间,提高系统测试效率。如图2所示,该系统自动测试方法包括如下步骤:
S10:获取测试请求,根据测试请求获取标准值报告。
其中,测试请求是指用户输入的对系统进行测试的请求。标准值报告是指存储了用于验证测试结果的测试数值的报告。
服务端接收由客户端发送的测试请求,然后根据测试请求获取标准值报告,标准值报告包含测试参数以及系统各个模块的测试标准值。其中,测试参数是指用于对起始模块进行测试的输入参数。测试标准值是指系统正常运行时,各个模块输出的标准的输出值。测试标准值用于验证测试结果的正确性。
S20:解析标准值报告,获取测试参数和系统中各个模块的测试标准值,根据测试参数对起始模块进行测试。
其中,系统中的每一模块均对应一测试标准值。可选地,测试标准值可以是根据系统中各个模块的运行逻辑,基于配置的算法计算得到。起始模块是指系统按照其运行逻辑首先运行的模块。
具体地,对标准值报告进行解析,获取标准值报告中的测试参数和每个模块对应的测试标准值,将测试参数作为起始模块的测试输入值,以对起始模块进行测试。
进一步地,可以采用POI算法对标准值报告进行解析,获取标准值报告的测试参数和各个模块的测试标准值。
S30:获取起始模块的测试输出值,将测试输出值与起始模块的测试标准值进行比较,得到测试结果。
其中,起始模块的测试输出值是指将测试参数输入至起始模块,起始模块进行测试后的输出值。测试结果是指对系统中各个模块进行测试并反馈是否测试成功的结果。
具体地,获取起始模块进行测试之后输出的测试输出值,将起始模块的测试输出值与从标准值报告中获取的该起始模块的测试标准值进行比较,验证起始模块的测试输出值与起始模块的测试标准值是否一致,得到测试结果。
进一步地,测试结果包括测试成功和测试失败,若起始模块的测试输出值与起始模块的测试标准值一致,则该起始模块测试成功,若起始模块的测试输出值与起始模块的测试标准值不一致,则该起始模块测试失败。
S40:根据测试结果获取下一模块的测试输入值,根据测试输入值对下一模块进行测试。
其中,下一模块是指按照系统的运行逻辑,当前正在进行测试的模块的下一模块。可以理解地,若当前正在进行测试的为起始模块,则下一模块就是第二模块;若当前正在进行测试的为第二模块,则下一模块就是第三模块,其中,第二模块和第三模块为对系统中各个模块按照系统的运行逻辑的顺序进行的命名。
具体地,根据起始模块的测试结果,获取下一模块的测试输入值对下一模块进行测试。进一步地,起始模块的测试结果包括测试成功和测试失败,测试成功则直接将起始模块的测试输出值作为下一模块的测试输入值输入至下一模块;测试失败即起始模块的测试输出值存在错误,那么可以判定该起始模块存在错误,为了保证后续模块可以继续进行测试,则将标准值报告中起始模块的测试标准值作为下一模块的测试输入值输入至下一模块,以确保下一模块输入正确的测试输入值,进行测试。
S50:按照系统中各个模块的运行逻辑,依序测试系统中的各个模块,获取系统测试报告。
其中,依序测试系统中的各个模块,是指按照系统各个模块的运行逻辑,对系统各个模块进行测试。系统测试报告是指系统完成测试之后得到最终结论的报告。系统测试报告中包含了系统中各个模块的测试结果,包含了测试失败的模块的测试失败次数、测试失败的模块进行重新测试的重试输出值以及错误标识。
具体地,例如起始模块的下一模块为第二模块,第二模块的下一模块为第三模块。根据起始模块的测试结果,将起始模块的测试输出值作为第二模块的输入值或者将起始模块的测试标准值作为第二模块的测试输入值,对第二模块进行测试。获取第二模块测试的测试输出值,将第二模块的测试输出值与标准值报告中第二模块的测试标准值进行比较,得到测试结果。根据测试结果,获取第三模块的测试输入值。第二模块的测试结果包括测试成功和测试失败,测试成功则直接将第二模块的测试输出值作为第三模块的测试输入值输入至第三模块;测试失败则将标准值报告中第二模块的测试标准值作为第三模块的测试输入值输入至第三模块,以确保第三模块输入正确的测试输入值,进行测试。然后按照系统中各个模块的运行逻辑,依序对系统中各个模块进行测试,获取系统测试报告。
本实施例中,通过解析标准值报告,将测试参数传入至起始模块,触发对起始模块进行测试,不用人为输入测试参数,使得系统测试操作更简便;通过将每一模块的测试输出值与标准值报告中该模块对应的测试标准值进行比较,可以非常直观地比较出该模块测试过程中是否存在问题,便于发现系统中各个模块的问题;依据各个模块的测试结果,获取下一模块正确的测试输入值,即使当前测试的模块测试失败,也不影响下一模块获取正确的测试输入值,使得系统各模块的测试可以顺畅进行,便于系统各模块进行自动化测试,提高了系统测试效率。
在一实施例中,如图3所示,步骤S20中,即解析标准值报告,获取测试参数和系统中各个模块的测试标准值,具体包括如下步骤:
S21:若标准值报告为Excel文档,则采用POI算法中的HSSF方法函数,逐行遍历Excel文档。
其中,标准值报告可以为Word、Excel或PPT等文档类型,可以通过识别标准值报告文件名的后缀字符,来识别标准值报告的文档类型。例如,Word文档的文件名后缀.doc,Excel文档的文件名后缀.xls。
POI算法是JAVA中一种解析文档的工具,POI很好的提供了解析多种类型文档的技术,以Excel为例,POI算法的HSSF方法函数可以解析到Excel里的每一单元格的数据。
具体地,若标准值报告对应为Excel文档,服务端识别该Excel文档,调用POI算法的HSSF方法函数,利用HSSF方法函数,逐行遍历Excel文档的字段。其中,HSSF方法函数提供读写Microsoft Excel XLS格式文档的功能。
S22:基于字段标识,读取Excel文档中与字段标识对应的字段值,获取测试参数和系统中各个模块的测试标准值。
其中,字段标识是指Excel文档中需要被读取的字段的标识,字段标识可以是Excel文档中预定的固定行或者固定列的标识,也可以是Excel文档中固定的表头字段。
具体地,测试参数和系统中各个模块的测试标准值存储在字段标识对应的固定行或者固定列中。读取测试参数和各个模块的测试标准值时,根据字段标识遍历Excel文档,以读取出相应的字段值,获取测试参数和系统中各个模块的测试标准值。
进一步地,Excel文档的单元格中可能存储不同类型的数据作为测试参数,例如单元格中的字段值可能为文本数据,数字数据、日期数据、布尔型数据以及单元格中可能包含有公式。可以通过判断字段值的类型,根据字段值的类型调用相应的程序获取测试参数。在遍历需要读取的字段时,识别单元格中字段值的类型,根据单元格中字段值的类型调用相应的程序,获取与字段标识对应的单元格的测试参数和各个模块的测试标准值。
在本实施例中,通过POI算法的HSSF方法函数读取标准值报告中的测试参数和各个模块的测试标准值,能够自动解析标准值报告,获取标准值报告中的测试参数和测试标准值,简化了操作过程。
在一实施例中,如图4所示,步骤S30中,即获取起始模块的测试输出值,将测试输出值与起始模块的测试标准值进行比较,得到测试结果,具体包括如下步骤:
S31:将起始模块的测试输出值与起始模块的测试标准值进行比较,若测试输出值与测试标准值不一致,则获取起始模块的测试失败次数,判断测试失败次数是否达到重试阈值。
其中,重试阈值是指系统中对应模块测试失败后进行重新测试的最大重试次数。重试阈值可以按照需求进行设定,便于排除由于网络不稳定或数据传输不稳定等外部因素造成的测试失败情况,以获得对系统的模块最准确的测试结果。例如,重试阈值可以设置为三次,以增强测试的灵活性,提高对系统测试的准确性。测试失败次数是指在一次系统测试中某一模块测试失败的次数。
具体地,将起始模块的测试输出值与标准值报告中起始模块对应的测试标准值进行对比,测试结果包括测试成功和测试失败。若测试输出值与测试标准值不一致,则获取当前测试的起始模块的测试失败次数,将测试失败次数与重试阈值进行比对,判断当前测试的起始模块的测试失败次数是否达到重试阈值。
S32:若测试失败次数达到重试阈值,则测试结果为测试失败。
具体地,若起始模块的测试失败次数达到重试阈值,即测试失败次数等于重试阈值,则说明该起始模块的测试失败次数已经达到了重试阈值,在一定程度上排除了网络不稳定、数据传输不稳定等其他外部因素造成的影响,其测试结果仍然为不一致,则该起始模块的测试结果为测试失败。
进一步地,记录该起始模块测试的测试失败次数以及失败状态,生成失败日志进行保存,便于后续检查和维护。
S33:若测试失败次数未达到重试阈值,则采用测试参数对起始模块重新进行测试,获取重试输出值。
其中,重试输出值是指测试失败后,重新进行测试时该模块的输出值。
具体地,若当前测试的测试失败次数未达到重试阈值,则重新获取该起始模块的测试输入值,对该起始模块重新进行测试,获取重试输出值。可以理解地,对于起始模块,其测试输入值就是测试参数。
S34:若重试输出值和测试标准值一致,则测试结果为测试成功。
具体地,将重新进行测试的起始模块的重试输出值与标准值报告中起始模块对应的测试标准值进行比较,若重试输出值与起始模块对应的测试标准值一致,则说明重新测试时,该模块测试通过,此时测试结果为测试成功。
S35:若重试输出值和测试标准值不一致,则更新测试失败次数,并重复执行判断测试失败次数是否达到重试阈值的步骤。
具体地,将重新进行测试的起始模块的重试输出值与标准值报告中起始模块对应的测试标准值进行比较,若重试输出值与起始模块对应的测试标准值不一致,说明重新测试时,起始模块测试仍然不成功,则更新测试失败的次数,将测试失败次数加1,并重复执行步骤S31判断测试失败次数是否达到重试阈值的步骤。循环对起始模块进行重新测试,直至重试输出值与起始模块对应的测试标准值一致或者测试失败次数达到重试阈值,则输出对应的测试结果:若重试输出值与起始模块对应的测试标准值一致则测试结果为测试成功,若测试失败次数达到重试阈值,则测试结果为测试失败。
在本实施例中,记录并判断起始模块测试失败次数是否达到重试阈值,若达到重试阈值时重试输出值与起始模块对应的测试标准值仍不一致,则判定测试失败,若测试失败次数未达到重试阈值,则重新对该模块进行测试,以便于排除其他外部因素造成的测试失败,以增强测试的灵活性,提高对系统测试的准确性。
在一实施例中,如图5所示,步骤S40中,即根据测试结果获取下一模块的测试输入值,具体包括如下步骤:
S41:若测试结果为测试成功,则将起始模块的测试输出值作为下一模块的测试输入值,传输至下一模块。
具体地,若测试结果为测试成功,则可以直接将起始模块的测试输出值作为下一模块的测试输入值,传输至下一模块,对下一模块进行测试。
S42:若测试结果为测试失败,则生成错误标识,获取起始模块的测试标准值作为下一模块的测试输入值,传输至下一模块。
其中,错误标识是指用于对测试失败的模块进行标示的标识,用于标识出测试失败的模块。
具体地,若测试结果为测试失败,则对起始模块进行标记,生成错误标识,然后从标准值报告中获取起始模块对应的测试标准值作为下一模块的测试输入值,传输至下一模块。
在本实施例中,根据当前测试的起始模块的测试结果,获取下一模块正确的测试输入值,保证了在测试结果为测试成功时,可以非常方便的直接将当前测试的起始模块的测试输出值作为下一模块的测试输入值,在测试结果为测试失败时,也可以获取下一模块正确的测试输入值,使得系统的测试不会因为当前测试的模块的失败,影响到下一模块的测试,保证了系统测试的连贯性,提高了系统测试效率。
在一实施例中,如图6所示,步骤S42中,即获取起始模块的测试标准值作为下一模块的测试输入值,传输至下一模块,具体包括如下步骤:
S421:根据错误标识,触发与下一模块对应的hook函数。
其中,hook函数是一个处理消息的程序段,通过服务端的调用,把它挂入在系统中每一个模块之前。当hook函数被某一特定因素触发,在上一模块的测试输出值还未传递到达下一模块时,hook函数就先拦截该测试输出值,亦即hook函数先得到控制权。这时hook函数即可以对该拦截的测试输出值进行加工处理,也可以不作处理而继续传递该测试输出值,还可以强制结束该测试输出值的传递。通过hook函数函数,可以截取上一模块测试失败的错误的测试输出值,并将标准值报告中相应的测试标准值传递给下一模块,系统测试不会因为当前模块测试失败而中止,使得系统测试可以继续进行。
具体地,若起始模块测试失败,则根据测试结果失败而生成的错误标识,设定hook函数的触发因素为检测到错误标识,即基于错误标识,触发并调用系统下一模块的hook函数。
S422:采用hook函数拦截测试结果为测试失败的起始模块的测试输出值。
具体地,系统每个模块都插入了hook函数,错误标识触发下一模块的hook函数,所以必须先执行该hook函数。hook函数先得到控制权,在测试失败的模块的测试输出值还未传递到达下一模块时,采用hook函数拦截测试失败的测试输出值。
可以理解地,hook函数相当于一种可以对当前的测试模块进行监控和修改的特殊功能函数。在每个系统的各个模块之前插入一段hook函数,即在运行该系统的模块之前,必须先执行hook函数。
S423:获取hook函数钩取的测试标准值,将测试标准值以同步请求方式发送至下一模块。
具体地,hook函数拦截测试失败的模块的测试输出值,并从标准值报告中查找该模块对应的测试标准值。具体地,可以通过错误标识定位到对应的模块,并从标准值报告中查找该模块对应的测试标准值。hook函数从标准值报告中钩取该测试失败的模块的测试标准值,将钩取的测试标准值以同步请求的方式返回传递给下一模块,以便于在拦截测试失败的模块的测试输出值同时获取测试标准值并返回传递,提高了测试输入值传递的效率,下一模块基于传入的测试标准值继续进行测试,并按照系统各个模块的运行逻辑,依序测试完系统的所有模块。
在本发明实施例提供的系统自动测试方法中,根据错误标识触发与下一模块对应的hook函数,利用hook函数拦截测试结果为测试失败的模块的测试输出值并替换为标准值报告中对应的测试标准值,对系统测试过程中出现错误的模块进行监控,以便于及时的拦截测试失败的模块的测试输出值,并钩取标准值报告中对应的测试标准值,使得下一模块能够输入正确的测试输入值。
在一实施例中,如图7所示,步骤S50中,即所述获取系统测试报告,具体包括如下步骤:
S51:依序获取系统中的各个模块的测试输入值、测试输出值以及测试标准值,并进行记录。
具体地,依据系统中各个模块按照其运行逻辑进行测试的次序,分别获取各个模块的测试输入值、测试输出值以及测试标准值。其中,起始模块的测试输入值为测试参数。起始模块的测试输出值是指将测试参数输入至起始模块进行测试后的输出值。依照各个模块进行测试的次序,分别记录每一模块的测试输入值,以及经过测试后输出的测试输出值。
S52:依序记录各个模块的测试结果。
其中,测试结果包括测试成功和测试失败。具体地,依据系统中各个模块按照其运行逻辑进行测试的次序,记录每一模块的测试结果。进一步地,还包括记录每一模块的测试失败次数,测试失败次数未达到重试阈值而进行重新测试时的重测输出值以及测试失败时生成的错误标识。
S53:基于各个模块的测试输入值、测试输出值、测试标准值以及测试结果,获取系统测试报告。
其中,系统测试报告是指系统完成测试之后得到最终结论的报告。具体地,根据各个模块的测试输入值、测试输出值、测试标准值以及测试结果,生成系统测试报告。系统测试报告中包含了系统中各个模块的测试结果,包含了测试失败的模块的测试失败次数、测试失败的模块进行重新测试的重试输出值以及错误标识。通过系统测试报告,可以非常清晰展示出每一模块的测试输出值与测试标准值的比较记录。
在本实施例中,通过依序记录各个模块在测试过程中的测试输入值、测试输出值、测试标准值以及测试结果,以生成系统测试报告,可以整体的展示系统各个模块的测试结果,利于更直观的了解系统测试的过程,从整体上体现出系统测试过程中的问题,利于后续对系统进行优化和维护。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种系统自动测试装置,该系统自动测试装置与上述实施例中系统自动测试方法一一对应。如图8所示,该系统自动测试装置包括测试请求获取模块10、标准值报告解析模块20、测试结果获取模块30、测试模块40和循环模块50。各功能模块详细说明如下:
测试请求获取模块10,用于获取测试请求,根据测试请求获取标准值报告。
标准值报告解析模块20,用于解析标准值报告,获取测试参数和系统中各个模块的测试标准值,根据测试参数对起始模块进行测试。
测试结果获取模块30,用于获取起始模块的测试输出值,将测试输出值与起始模块的测试标准值进行比较,得到测试结果。
测试模块40,用于根据测试结果获取下一模块的测试输入值,根据测试输入值对下一模块进行测试。
循环模块50,用于按照系统中各个模块的运行逻辑,依序测试系统中的各个模块,获取系统测试报告。
优选地,标准值报告解析模块20,包括:文档解析单元21和参数获取单元22。
文档解析单元21,用于若标准值报告对应为Excel文档,则采用POI算法中的HSSF方法函数,逐行遍历Excel文档。
参数获取单元22,用于基于字段标识,读取Excel文档中与字段标识对应的字段值,获取测试参数和系统中各个模块的测试标准值。
优选地,测试结果获取模块30,包括:比较单元31、重试阈值判断单元32和重试输出值判断单元33。
比较单元31,用于将起始模块的测试输出值与起始模块的测试标准值进行比较,若测试输出值与测试标准值不一致,则获取起始模块的测试失败次数,判断测试失败次数是否达到重试阈值。
重试阈值判断单元32,用于若测试失败次数达到重试阈值,则测试结果为测试失败;若测试失败次数未达到重试阈值,则采用测试参数对起始模块重新进行测试,获取重试输出值。
重试输出值判断单元33,用于若重试输出值和测试标准值一致,则测试结果为测试成功;若重试输出值和测试标准值不一致,则更新测试失败次数,并重复执行判断测试失败次数是否达到重试阈值的步骤。
优选地,测试模块40,包括:测试成功操作单元41和测试失败操作单元42。
测试成功操作单元41,用于若测试结果为测试成功,则将起始模块的测试输出值作为下一模块的测试输入值,传输至下一模块。
测试失败操作单元42,用于若测试结果为测试失败,则生成错误标识,获取起始模块的测试标准值作为下一模块的测试输入值,传输至下一模块。
优选地,测试失败操作单元42,包括:触发子单元421、拦截子单元422和发送子单元423。
触发子单元421,用于根据错误标识,触发与下一模块对应的hook函数。
拦截子单元422,用于采用hook函数拦截测试结果为测试失败的起始模块的测试输出值。
发送子单元423,用于获取hook函数钩取的测试标准值,将测试标准值以同步请求方式发送至下一模块。
优选地,循环模块50包括:第一记录单元51、第二记录单元52和测试报告获取单元53。
第一记录单元51,用于依序获取系统中的各个模块的测试输入值、测试输出值以及测试标准值,并进行记录。
第二记录单元52,用于依序记录各个模块的测试结果。
测试报告获取单元53,用于基于各个模块的测试输入值、测试输出值、测试标准值以及测试结果,获取系统测试报告。
关于系统自动测试装置的具体限定可以参见上文中对于系统自动测试方法的限定,在此不再赘述。上述系统自动测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种系统自动测试方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取测试请求,根据测试请求获取标准值报告;
解析标准值报告,获取测试参数和系统中各个模块的测试标准值,根据测试参数对起始模块进行测试;
获取起始模块的测试输出值,将测试输出值与起始模块的测试标准值进行比较,得到测试结果;
根据测试结果获取下一模块的测试输入值,根据测试输入值对下一模块进行测试;
按照系统中各个模块的运行逻辑,依序测试系统中的各个模块,获取系统测试报告。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取测试请求,根据测试请求获取标准值报告;
解析标准值报告,获取测试参数和系统中各个模块的测试标准值,根据测试参数对起始模块进行测试;
获取起始模块的测试输出值,将测试输出值与起始模块的测试标准值进行比较,得到测试结果;
根据测试结果获取下一模块的测试输入值,根据测试输入值对下一模块进行测试;
按照系统中各个模块的运行逻辑,依序测试系统中的各个模块,获取系统测试报告。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分模块,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的模块。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (8)
1.一种系统自动测试方法,其特征在于,包括:
获取测试请求,根据所述测试请求获取标准值报告;
解析所述标准值报告,获取测试参数和所述系统中各个模块的测试标准值,根据所述测试参数对起始模块进行测试,所述测试标准值是指系统正常运行时,各个模块输出的标准的输出值;
将所述起始模块的测试输出值与所述起始模块的所述测试标准值进行比较,若所述测试输出值与所述测试标准值不一致,则获取所述起始模块的测试失败次数,判断所述测试失败次数是否达到重试阈值;若所述测试失败次数达到所述重试阈值,则测试结果为测试失败;若所述测试失败次数未达到所述重试阈值,则采用所述测试参数对所述起始模块重新进行测试,获取重试输出值;若所述重试输出值和测试标准值一致,则所述测试结果为测试成功;若所述重试输出值和测试标准值不一致,则更新所述测试失败次数,并重复执行判断所述测试失败次数是否达到重试阈值的步骤;
根据所述测试结果获取下一模块的测试输入值,若所述测试结果为测试失败,则生成错误标识,根据错误标识,触发与下一模块对应的hook函数;采用hook函数拦截测试结果为测试失败的起始模块的测试输出值;获取hook函数钩取的所述测试标准值,将所述测试标准值以同步请求方式发送至下一模块,根据所述测试输入值对所述下一模块进行测试,所述下一模块是指按照系统的运行逻辑,当前正在进行测试的模块的下一模块;
按照系统中各个模块的运行逻辑,依序测试所述系统中的各个模块,获取系统测试报告。
2.如权利要求1所述的系统自动测试方法,其特征在于,所述解析所述标准值报告,获取测试参数和所述系统中各个模块的测试标准值,包括:
若所述标准值报告为Excel文档,则采用POI算法中的HSSF方法函数,逐行遍历所述Excel文档;
基于字段标识,读取所述Excel文档中与所述字段标识对应的字段值,获取所述测试参数和所述系统中各个模块的测试标准值。
3.如权利要求1所述的系统自动测试方法,其特征在于,所述根据所述测试结果获取下一模块的测试输入值,包括:
若所述测试结果为测试成功,则将所述起始模块的所述测试输出值作为下一模块的测试输入值,传输至下一模块。
4.如权利要求1所述的系统自动测试方法,其特征在于,所述获取系统测试报告,包括:
依序获取系统中的各个模块的测试输入值、测试输出值以及测试标准值,并进行记录;
依序记录各个模块的测试结果;
基于所述各个模块的测试输入值、测试输出值、测试标准值以及所述测试结果,获取所述系统测试报告。
5.一种系统自动测试装置,其特征在于,包括:
测试请求获取模块,用于获取测试请求,根据所述测试请求获取标准值报告;
标准值报告解析模块,用于解析所述标准值报告,获取测试参数和所述系统中各个模块的测试标准值,根据所述测试参数对起始模块进行测试,所述测试标准值是指系统正常运行时,各个模块输出的标准的输出值;
测试结果获取模块,用于将所述起始模块的测试输出值与所述起始模块的所述测试标准值进行比较,若所述测试输出值与所述测试标准值不一致,则获取所述起始模块的测试失败次数,判断所述测试失败次数是否达到重试阈值;若所述测试失败次数达到所述重试阈值,则所述测试结果为测试失败;若所述测试失败次数未达到所述重试阈值,则采用所述测试参数对所述起始模块重新进行测试,获取重试输出值;若所述重试输出值和测试标准值一致,则所述测试结果为测试成功;若所述重试输出值和测试标准值不一致,则更新所述测试失败次数,并重复执行判断所述测试失败次数是否达到重试阈值的步骤;
测试模块,用于根据所述测试结果获取下一模块的测试输入值,根据所述测试输入值对所述下一模块进行测试;
循环模块,用于按照系统中各个模块的运行逻辑,依序测试所述系统中的各个模块,获取系统测试报告;
所述测试模块包括测试失败操作单元,所述测试失败操作单元用于若所述测试结果为测试失败,则生成错误标识,根据错误标识,触发与下一模块对应的hook函数;采用hook函数拦截测试结果为测试失败的起始模块的测试输出值;获取hook函数钩取的所述测试标准值,将所述测试标准值以同步请求方式发送至下一模块,所述下一模块是指按照系统的运行逻辑,当前正在进行测试的模块的下一模块。
6.如权利要求5所述的系统自动测试装置,其特征在于,所述测试模块,包括:
测试成功操作单元,用于若所述测试结果为测试成功,则将所述起始模块的所述测试输出值作为下一模块的测试输入值,传输至下一模块。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述系统自动测试方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述系统自动测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810919777.6A CN109324961B (zh) | 2018-08-14 | 2018-08-14 | 系统自动测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810919777.6A CN109324961B (zh) | 2018-08-14 | 2018-08-14 | 系统自动测试方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109324961A CN109324961A (zh) | 2019-02-12 |
CN109324961B true CN109324961B (zh) | 2024-05-17 |
Family
ID=65263614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810919777.6A Active CN109324961B (zh) | 2018-08-14 | 2018-08-14 | 系统自动测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324961B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274128A (zh) * | 2020-01-15 | 2020-06-12 | 深圳壹账通智能科技有限公司 | 测试方法、装置、计算机设备及计算机可读存储介质 |
CN112181835B (zh) * | 2020-09-29 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN112799907A (zh) * | 2021-01-21 | 2021-05-14 | 安徽心驰信息科技有限公司 | 一种信息系统测试维护方法 |
CN113297090B (zh) * | 2021-06-11 | 2024-01-23 | 南方电网数字平台科技(广东)有限公司 | 系统测试方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930399A (zh) * | 2010-08-16 | 2010-12-29 | 于秀山 | 一种对软件测试进行记录的方法 |
CN105279093A (zh) * | 2015-11-26 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 软件测试方法、装置及设备 |
CN107451058A (zh) * | 2017-07-31 | 2017-12-08 | 北京云测信息技术有限公司 | 一种软件开发方法和装置 |
CN107480056A (zh) * | 2017-07-31 | 2017-12-15 | 北京云测信息技术有限公司 | 一种软件测试方法和装置 |
RU2661539C1 (ru) * | 2017-05-30 | 2018-07-17 | Федеральное государственное автономное образовательное учреждение высшего образования "Сибирский федеральный университет" (СФУ) | Устройство автоматизированного моделирования и испытаний |
-
2018
- 2018-08-14 CN CN201810919777.6A patent/CN109324961B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930399A (zh) * | 2010-08-16 | 2010-12-29 | 于秀山 | 一种对软件测试进行记录的方法 |
CN105279093A (zh) * | 2015-11-26 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 软件测试方法、装置及设备 |
RU2661539C1 (ru) * | 2017-05-30 | 2018-07-17 | Федеральное государственное автономное образовательное учреждение высшего образования "Сибирский федеральный университет" (СФУ) | Устройство автоматизированного моделирования и испытаний |
CN107451058A (zh) * | 2017-07-31 | 2017-12-08 | 北京云测信息技术有限公司 | 一种软件开发方法和装置 |
CN107480056A (zh) * | 2017-07-31 | 2017-12-15 | 北京云测信息技术有限公司 | 一种软件测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109324961A (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324961B (zh) | 系统自动测试方法、装置、计算机设备及存储介质 | |
CN109474488B (zh) | 接口测试方法、装置及计算机设备 | |
CN109634258B (zh) | 一种用于硬件在环测试的总线报文校验方法、装置及系统 | |
CN106502883B (zh) | 自动化测试时客户端与服务端的数据库同步方法及系统 | |
CN110764998B (zh) | 基于Django框架的数据比对方法、装置、设备及存储介质 | |
CN109766261B (zh) | 覆盖测试方法、装置、计算机设备和存储介质 | |
CN110781070A (zh) | 大数据测试验证方法、装置、计算机设备及存储介质 | |
CN110704312B (zh) | 压力测试的方法、装置、计算机设备和存储介质 | |
CN114201408A (zh) | 回归测试方法、装置、计算机设备及存储介质 | |
CN112162924A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN114610635A (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN113505059A (zh) | 页面监控方法、装置、计算机设备及存储介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
US11467896B2 (en) | Sections in crash dump files | |
CN111966461A (zh) | 虚拟机集群节点守护方法、装置、设备及存储介质 | |
CN110309057B (zh) | 基于自动化脚本的流程性项目测试方法和相关设备 | |
CN109522206B (zh) | 异常数据定位方法、装置、计算机设备及存储介质 | |
CN111124937A (zh) | 基于插桩函数辅助提高生成测试用例效率的方法及系统 | |
CN115705297A (zh) | 代码调用检测方法、装置、计算机设备以及存储介质 | |
CN112559345A (zh) | 基于LoadRunner的接口测试方法、计算机设备及存储介质 | |
CN113094258A (zh) | 精准测试方法、装置、计算机设备及介质 | |
CN112199281A (zh) | 一种数据处理方法、装置、终端设备及可读存储介质 | |
CN111475400A (zh) | 一种业务平台的验证方法及相关设备 | |
CN110704218B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |