CN114416596A - 一种测试应用的方法、装置、计算机设备及存储介质 - Google Patents
一种测试应用的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114416596A CN114416596A CN202210207226.3A CN202210207226A CN114416596A CN 114416596 A CN114416596 A CN 114416596A CN 202210207226 A CN202210207226 A CN 202210207226A CN 114416596 A CN114416596 A CN 114416596A
- Authority
- CN
- China
- Prior art keywords
- parameter
- version application
- old
- application
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种测试应用的方法、装置、计算机设备及存储介质,所述方法包括:接收用于验证新版本应用的验证指令;获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用;本发明使用真实入参参数测试新版本应用,节约了测试数据资源,提高了测试准确率和测试效率。
Description
技术领域
本发明涉及云测试技术领域,特别涉及一种测试应用的方法、装置、计算机设备及存储介质。
背景技术
在一个应用上线后,开发人员需要对该应用进行不断的调整重构并使用完成测试后的新版本应用替换旧版本应用,以此来提高应用的运行速度,优化应用的运行逻辑,以达到节约服务器运行资源,改善用户体验的目的。在现有技术中,需要大量测试人员对重构后的新版本应用进行验证,测试人员需要模拟大量入参参数,对新版本应用进行可行性、准确性测试,并人工比对新、旧版本应用的运行结果是否一致,验证效率极低,且浪费大量人力资源。因此,如何高效准确的测试新版本应用成为了技术人员亟待解决的技术问题。
发明内容
本发明的目的在于提供一种测试应用的方法、装置、计算机设备及存储介质,本发明使用真实入参参数测试新版本应用,节约了测试数据资源,提高了测试准确率和测试效率。
根据本发明的一个方面,提供了一种测试应用的方法,应用于应用管理后台,该方法包括如下步骤:
接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
可选的,所述按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数,具体包括:
当所述旧版本应用仅有一个输入接口时,按照预设时间间隔,周期性的将每个时间间隔内所述输入接口最后接收到的入参参数作为目标入参参数;或者,
当所述旧版本应用仅有一个输入接口时,将所述输入接口接收到的入参参数序列号为预设值的整数倍的入参参数作为目标入参参数;或者,
当所述旧版本应用有多个输入接口时,根据每个输入接口的入参参数接收频率分别为每个输入接口设置对应的间隔值,并按照所述间隔值分别将每个输入接口接收到的入参参数序列号为对应间隔值的整数倍的入参参数作为目标入参参数。
可选的,所述获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数,具体包括:
建立用户端与负载均衡服务器的连接,并分别建立所述负载均衡服务器与所述旧版本应用对应的多个处理服务器的连接;
向所述负载均衡服务器发送所述抽样规则,以供所述负载均衡服务器根据所述抽样规则从由所述用户端输入的入参参数中轮询抽取出目标入参参数,并将所述目标入参参数发送至所述多个处理服务器中的指定处理服务器;
所述获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数,具体包括:
获取由所述指定处理服务器处理所述目标入参参数后得到的第一出参参数。
可选的,所述当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用,具体包括:
对所述第一出参参数按照预设的哈希算法进行计算得到第一哈希值,并对所述第二出参参数按照所述哈希算法进行计算得到第二哈希值;
判断所述第一哈希值与所述第二哈希值是否相同,若是,则使用所述新版本应用替换所述旧版本应用,若否,则根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,其中,所述异常新功能模块与所述旧版本应用中对应的旧功能模块相比不能实现相同的功能。
可选的,所述根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,具体包括:
从所述旧版本应用的第一运行日志中解析出所述旧版本应用中各个旧功能模块的出参参数;
从所述新版本应用的第二运行日志中解析出所述新版本应用中各个新功能模块的出参参数;其中,所述旧版本应用中各个旧功能模块与所述新版本应用中各个新功能模块具有一一对应关系;
依次遍历所述新版本应用中的各个新功能模块,并判断当前遍历到的新功能模块的出参参数与具有对应关系的旧功能模块的出参参数是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
可选的,所述判断当前遍历到的新功能模块的出参参数与具有对应关系的旧功能模块的出参参数是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块,具体包括:
对当前遍历到的新功能模块的出参参数按照预设的哈希算法进行计算得到第三哈希值,并对具有对应关系的旧功能模块的出参参数按照所述哈希算法进行计算得到第四哈希值;
判断所述第三哈希值与所述第四哈希值是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
可选的,所述使用所述新版本应用替换所述旧版本应用,具体包括:
当针对一个目标入参参数的第一出参参数和第二出参参数一致时,记为一次验证成功次数;
当抽取出的目标入参参数的累计数量达到预设数量时,判断累计的验证成功次数与所述累计数量的比例是否达到预设成功率,若是,则使用所述新版本应用替换所述旧版本应用。
为了实现上述目的,本发明还提供一种测试应用的方法的装置,应用于应用管理后台,该装置具体包括以下组成部分:
接收模块,用于接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
抽取模块,用于获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取模块,用于获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
输入模块,用于将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
替换模块,用于当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的测试应用的方法的步骤。
为了实现上述目的,本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的测试应用的方法的步骤。
本发明提供的测试应用的方法、装置、计算机设备及存储介质,通过负载均衡服务器从用户端发送的入参参数中抽取目标入参参数,并比对旧版本应用输出的第一出参参数和新版本应用输出的第二出参参数完成一次验证,当新版本应用处理目标入参参数成功率达到预设成功率时,则可以使用新版本应用替换旧版本应用完成版本更新,解决了现有技术中需要测试人员模拟大量测试参数来对新版本应用进行测试的问题,实现了灵活验证新版本应用的功能以及节约数据资源的效果,同时,该测试应用的逻辑不会影响正在正常运行的旧版本应用,不仅可以节约验证成本还能提高验证效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为实例一提供的测试应用的方法的一种可选的流程示意图;
图2为实例二提供的测试应用的装置的一种可选的程序模块示意图;
图3为实例三提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种测试应用的方法,应用于应用管理后台,如图1所示,该方法具体包括以下步骤:
步骤S101:接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本。
其中,所述验证指令是由应用管理后台发送的用于验证新版本应用功能是否可行的指令。
具体的,所述新版本应用与旧版本应用的功能实质上一致,新版本应用的运行速度更快,运行效果更优。新版本应用与旧版本应用均包含相同数量的功能模块,且具有对应关系的功能模块可以实现相同的功能。
本实施例中,旧版本应用为重构优化前的正在正常运行的应用,用于接收和处理用户端发送的入参参数。为了加快旧版本应用的运行速度、优化处理逻辑,开发人员需要将该旧版本应用进行优化升级,即重新编写该旧版本应用的代码,将优化后的代码生成新版本应用,在现有技术中,测试人员需要对新版本应用进行人工测试,即模拟生成大量入参参数,使用新版本应用依次运行上述入参参数以得到出参参数,并人工分析该出参参数是否正确合理。现有的人工测试手段需要生成大量模拟数据,来提高测试的准确性,这种测试手段需要消耗大量人力资源和测试资源,成本较高且测试速度较慢。
步骤S102:获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数。
具体的,所述按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数,包括以下步骤:
当所述旧版本应用仅有一个输入接口时,按照预设时间间隔,周期性的将每个时间间隔内所述输入接口最后接收到的入参参数作为目标入参参数;或者,
当所述旧版本应用仅有一个输入接口时,将所述输入接口接收到的入参参数序列号为预设值的整数倍的入参参数作为目标入参参数;或者,
当所述旧版本应用有多个输入接口时,根据每个输入接口的入参参数接收频率分别为每个输入接口设置对应的间隔值,并按照所述间隔值分别将每个输入接口接收到的入参参数序列号为对应间隔值的整数倍的入参参数作为目标入参参数。
其中,抽样规则可分为定时抽样、定量抽样和分层抽样,分层抽样是由于用户端生成的入参参数可能通过多个输入接口发送至旧版本应用中进行处理,例如:在购物场景中,用户端用户可以使用购物车下单产生入参参数,并通过购物车对应的输入接口发送至旧版本应用,或者通过商城直接下单产生入参参数,并通过商场对应的输入接口发送至旧版本应用,此时这两种入参参数的本质相同,但传输入参参数的接口不同,为了更加准确的验证新版本应用,所以需要对两种接口传输的入参参数进行分层抽样。其中,若使用购物车下单的用户和使用商城下单的用户比例为3:7,则一个时间周期内,购物车对应的输入接口的入参参数接收频率为30%,商城对应的输入接口的入参参数接收频率为70%,所以可以配置从每30个使用购物车下单的入参参数抽取最后接收到的一个入参参数作为目标入参参数,从每70个使用商城下单的入参参数抽取最后接收到的一个入参参数作为目标入参参数。
在本实施例中,按照抽样规则来抽取目标入参参数是为了保证目标入参参数具有代表性,使得新版本应用的运行结果更加可靠,贴近真实场景,此外,本实施例提供了多种抽样方式,定时抽样适合用户端仅通过一个输入接口传输入参参数且入参参数的产生速度均匀的情况,定量抽样适合用户端仅通过一个输入接口传输入参参数但入参参数的产生速度存在峰值谷值的情况,分层抽样适合用户端通过多个输入接口传输入参参数的情况。开发人员可以根据用户端产生的入参参数的特点选择合适的抽样规则进行抽样,尽可能的使新、旧版本应用的验证可比性提高。
进一步的,所述步骤S102,还包括以下步骤:
步骤A1:建立用户端与负载均衡服务器的连接,并分别建立所述负载均衡服务器与所述旧版本应用对应的多个处理服务器的连接。
步骤A2:向所述负载均衡服务器发送所述抽样规则,以供所述负载均衡服务器根据所述抽样规则从由所述用户端输入的入参参数中轮询抽取出目标入参参数,并将所述目标入参参数发送至所述多个处理服务器中的指定处理服务器。
其中,一个旧版本应用有多个处理服务器,处理服务器用于处理入参参数,在本实施例中,为目标入参参数设定一个指定处理服务器,该指定处理服务器用于处理由负载均衡服务器按照抽样规则抽取的目标入参参数。
具体的,应用管理后台将预设的抽样规则发送至负载均衡服务器中,负载均衡服务器通过加权轮询算法,将用户端发送至旧应用版本的入参参数拦截,再按照预设的抽样规则将进入到负载均衡服务器的入参参数进行轮询抽样,并将抽取到的目标入参参数分配至旧应用版本对应的指定处理服务器中进行处理。
优选的,所述负载均衡服务器为NGINX负载均衡服务器。
更进一步的,在不使用负载均衡服务器的场景中,所述步骤S102,还包括以下步骤:
为所述目标入参参数添加标识并将添加标识的所述目标入参参数发送至旧版本应用中。
其中,所述标识为UUID(Universally Unique Identifier,通用唯一识别码),在旧版本应用处理目标入参参数的过程中,该标识随目标入参参数传递,并在旧版本应用输出第一出参参数时,将该标识与第一出参参数一同输出。
步骤S103:获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数。
具体的,所述步骤S103,包括:
获取由所述指定处理服务器处理所述目标入参参数后得到的第一出参参数。
其中,由于负载均衡服务器可以将抽取到的目标入参参数通过指定处理服务器进行处理,所以只需获取由指定处理服务器输出的第一出参参数即可,无需再次从所有出参参数中进行筛选,提高了获取参数的效率。
进一步的,在不使用负载均衡服务器的场景中,所述步骤S103,还包括以下步骤:
从所述旧版本应用输出的各个出参参数中筛选包含与所述目标入参参数的标识相同的出参参数作为第一出参参数。
在本实施例中,提供了两种获取第一出参参数的逻辑,其一:获取由负载均衡服务器将筛选出的目标入参参数发送至指定处理服务器后,该指定处理服务器输出的第一出参参数;其二:从旧版本应用输出的全部出参参数中筛选出与目标入参参数标识相同的出参参数作为第一出参参数。
步骤S104:将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数。
步骤S105:当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
具体的,所述步骤S105,包括以下步骤:
步骤B1:对所述第一出参参数按照预设的哈希算法进行计算得到第一哈希值,并对所述第二出参参数按照所述哈希算法进行计算得到第二哈希值。
步骤B2:判断所述第一哈希值与所述第二哈希值是否相同,若是,则使用所述新版本应用替换所述旧版本应用,若否,则根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,其中,所述异常新功能模块与所述旧版本应用中对应的旧功能模块相比不能实现相同的功能。
其中,所述新、旧版本应用均由相同数量个功能模块构成,且功能模块之间存在一一对应关系,即具有对应关系的两个功能模块可以实现相同的功能。在应用内部,各个功能模块均按照预设运行顺序运行,由第一个功能模块处理目标入参参数,并将该功能模块得到的出参参数传递给下一个功能模块依次进行处理,直至最后一个功能模块输出得到出参参数。
在本实施例中,使用哈希算法计算第一出参参数和第二出参参数的前提是第一出参参数和第二出参参数中均不存在时间戳等影响哈希计算的干扰参数,新、旧版本应用两者对目标入参参数的处理结果理论上应该保持一致,以保证使用新版本应用替换旧版本应用进行应用更新时,不影响整体运行功能。
进一步的,所述根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,具体包括以下步骤:
步骤B21:从所述旧版本应用的第一运行日志中解析出所述旧版本应用中各个旧功能模块的出参参数。
步骤B22:从所述新版本应用的第二运行日志中解析出所述新版本应用中各个新功能模块的出参参数;其中,所述旧版本应用中各个旧功能模块与所述新版本应用中各个新功能模块具有一一对应关系。
步骤B23:依次遍历所述新版本应用中的各个新功能模块,并判断当前遍历到的新功能模块的出参参数与具有对应关系的旧功能模块的出参参数是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
更进一步的,所述步骤B23,具体包括以下步骤:
步骤B231:对当前遍历到的新功能模块的出参参数按照预设的哈希算法进行计算得到第三哈希值,并对具有对应关系的旧功能模块的出参参数按照所述哈希算法进行计算得到第四哈希值。
步骤B232:判断所述第三哈希值与所述第四哈希值是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
此外,所述使用所述新版本应用替换所述旧版本应用,具体包括:
当针对一个目标入参参数的第一出参参数和第二出参参数一致时,记为一次验证成功次数;当抽取出的目标入参参数的累计数量达到预设数量时,判断累计的验证成功次数与所述累计数量的比例是否达到预设成功率,若是,则使用所述新版本应用替换所述旧版本应用。
其中,完成一个新版本应用的测试需要使用大量真实的目标入参参数对该新版本应用进行验证,以保证新版本应用的功能正常、运行结果准确,所以只有当验证目标入参参数成功的次数达到预设数量时,才可以判定该新版本应用可以替换旧版本应用进行工作,以实现对旧版本应用的更新。
在本实施例中,通过负载均衡服务器从用户端发送的入参参数中抽取目标入参参数,并比对旧版本应用输出的第一出参参数和新版本应用输出的第二出参参数完成一次验证,当新版本应用处理目标入参参数成功率达到预设成功率时,则可以使用新版本应用替换旧版本应用完成版本更新,解决了现有技术中需要测试人员模拟大量测试参数来对新版本应用进行测试的问题,实现了灵活验证新版本应用的功能以及节约数据资源的效果,同时,该测试应用的逻辑还可以主动定位新版本应用中的异常新功能模块,在不影响正在正常运行的旧版本应用的前提下,达到了节约验证成本、提高验证效率、定位异常位置的目的。
实施例二
基于上述实施例一中提供的测试应用的方法,本实施例中提供一种测试应用的装置,具体地,图2示出了该测试应用的装置的可选的结构框图,该测试应用的装置被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述测试应用的装置在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图2所示,所述测试应用的装置应用于应用管理后台,具体包括以下组成部分:
接收模块201,用于接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
抽取模块202,用于获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取模块203,用于获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
输入模块204,用于将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
替换模块205,用于当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
其中,所述抽取模块202,具体用于:
当所述旧版本应用仅有一个输入接口时,按照预设时间间隔,周期性的将每个时间间隔内所述输入接口最后接收到的入参参数作为目标入参参数;或者,当所述旧版本应用仅有一个输入接口时,将所述输入接口接收到的入参参数序列号为预设值的整数倍的入参参数作为目标入参参数;或者,当所述旧版本应用有多个输入接口时,根据每个输入接口的入参参数接收频率分别为每个输入接口设置对应的间隔值,并按照所述间隔值分别将每个输入接口接收到的入参参数序列号为对应间隔值的整数倍的入参参数作为目标入参参数。
具体的,所述抽取模块202,还用于:
建立用户端与负载均衡服务器的连接,并分别建立所述负载均衡服务器与所述旧版本应用对应的多个处理服务器的连接;向所述负载均衡服务器发送所述抽样规则,以供所述负载均衡服务器根据所述抽样规则从由所述用户端输入的入参参数中轮询抽取出目标入参参数,并将所述目标入参参数发送至所述多个处理服务器中的指定处理服务器。
进一步的,所述获取模块203,具体用于:
获取由所述指定处理服务器处理所述目标入参参数后得到的第一出参参数。
此外,所述替换模块205,具体包括:
计算单元,用于对所述第一出参参数按照预设的哈希算法进行计算得到第一哈希值,并对所述第二出参参数按照所述哈希算法进行计算得到第二哈希值;
判断单元,用于判断所述第一哈希值与所述第二哈希值是否相同,若是,则使用所述新版本应用替换所述旧版本应用,若否,则根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,其中,所述异常新功能模块与所述旧版本应用中对应的旧功能模块相比不能实现相同的功能。
其中,所述判断单元,具体包括:
第一解析子单元,用于从所述旧版本应用的第一运行日志中解析出所述旧版本应用中各个旧功能模块的出参参数;
第二解析子单元,用于从所述新版本应用的第二运行日志中解析出所述新版本应用中各个新功能模块的出参参数;其中,所述旧版本应用中各个旧功能模块与所述新版本应用中各个新功能模块具有一一对应关系;
判断子单元,用于依次遍历所述新版本应用中的各个新功能模块,并判断当前遍历到的新功能模块的出参参数与具有对应关系的旧功能模块的出参参数是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
进一步的,所述判断子单元,具体用于:
对当前遍历到的新功能模块的出参参数按照预设的哈希算法进行计算得到第三哈希值,并对具有对应关系的旧功能模块的出参参数按照所述哈希算法进行计算得到第四哈希值;判断所述第三哈希值与所述第四哈希值是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
更进一步的,所述替换模块205,还用于:
当针对一个目标入参参数的第一出参参数和第二出参参数一致时,记为一次验证成功次数;当抽取出的目标入参参数的累计数量达到预设数量时,判断累计的验证成功次数与所述累计数量的比例是否达到预设成功率,若是,则使用所述新版本应用替换所述旧版本应用。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备30至少包括但不限于:可通过***总线相互通信连接的存储器301、处理器302。需要指出的是,图3仅示出了具有组件301-302的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器301(即存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器301可以是计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,存储器301也可以是计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。当然,存储器301还可以既包括计算机设备30的内部存储单元也包括其外部存储设备。在本实施例中,存储器301通常用于存储安装于计算机设备30的操作***和各类应用软件。此外,存储器301还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器302在一些实施例中可以是中央处理器(CentralProcessingUnit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器302通常用于控制计算机设备30的总体操作。
具体的,在本实施例中,处理器302用于执行存储器301中存储的测试应用的方法的程序,所述测试应用的方法的程序被执行时实现如下步骤:
接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。
实施例四
本实施例还提供一种计算机存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种测试应用的方法,其特征在于,应用于应用管理后台,所述方法包括:
接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
2.根据权利要求1所述的测试应用的方法,其特征在于,所述按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数,具体包括:
当所述旧版本应用仅有一个输入接口时,按照预设时间间隔,周期性的将每个时间间隔内所述输入接口最后接收到的入参参数作为目标入参参数;或者,
当所述旧版本应用仅有一个输入接口时,将所述输入接口接收到的入参参数序列号为预设值的整数倍的入参参数作为目标入参参数;或者,
当所述旧版本应用有多个输入接口时,根据每个输入接口的入参参数接收频率分别为每个输入接口设置对应的间隔值,并按照所述间隔值分别将每个输入接口接收到的入参参数序列号为对应间隔值的整数倍的入参参数作为目标入参参数。
3.根据权利要求1所述的测试应用的方法,其特征在于,所述获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数,具体包括:
建立用户端与负载均衡服务器的连接,并分别建立所述负载均衡服务器与所述旧版本应用对应的多个处理服务器的连接;
向所述负载均衡服务器发送所述抽样规则,以供所述负载均衡服务器根据所述抽样规则从由所述用户端输入的入参参数中轮询抽取出目标入参参数,并将所述目标入参参数发送至所述多个处理服务器中的指定处理服务器;
所述获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数,具体包括:
获取由所述指定处理服务器处理所述目标入参参数后得到的第一出参参数。
4.根据权利要求1所述的测试应用的方法,其特征在于,所述当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用,具体包括:
对所述第一出参参数按照预设的哈希算法进行计算得到第一哈希值,并对所述第二出参参数按照所述哈希算法进行计算得到第二哈希值;
判断所述第一哈希值与所述第二哈希值是否相同,若是,则使用所述新版本应用替换所述旧版本应用,若否,则根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,其中,所述异常新功能模块与所述旧版本应用中对应的旧功能模块相比不能实现相同的功能。
5.根据权利要求4所述的测试应用的方法,其特征在于,所述根据所述旧版本应用中的各个旧功能模块确定出所述新版本应用中的异常新功能模块,具体包括:
从所述旧版本应用的第一运行日志中解析出所述旧版本应用中各个旧功能模块的出参参数;
从所述新版本应用的第二运行日志中解析出所述新版本应用中各个新功能模块的出参参数;其中,所述旧版本应用中各个旧功能模块与所述新版本应用中各个新功能模块具有一一对应关系;
依次遍历所述新版本应用中的各个新功能模块,并判断当前遍历到的新功能模块的出参参数与具有对应关系的旧功能模块的出参参数是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
6.根据权利要求5所述的测试应用的方法,其特征在于,所述判断当前遍历到的新功能模块的出参参数与具有对应关系的旧功能模块的出参参数是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块,具体包括:
对当前遍历到的新功能模块的出参参数按照预设的哈希算法进行计算得到第三哈希值,并对具有对应关系的旧功能模块的出参参数按照所述哈希算法进行计算得到第四哈希值;
判断所述第三哈希值与所述第四哈希值是否相同,若是,则继续遍历,若否,则将所述当前遍历到的新功能模块确定为异常新功能模块。
7.根据权利要求1至6中任一项所述的测试应用的方法,其特征在于,所述使用所述新版本应用替换所述旧版本应用,具体包括:
当针对一个目标入参参数的第一出参参数和第二出参参数一致时,记为一次验证成功次数;
当抽取出的目标入参参数的累计数量达到预设数量时,判断累计的验证成功次数与所述累计数量的比例是否达到预设成功率,若是,则使用所述新版本应用替换所述旧版本应用。
8.一种测试应用的装置,其特征在于,应用于应用管理后台,所述装置包括:
接收模块,用于接收用于验证新版本应用的验证指令;其中,所述新版本应用是基于旧版本应用的重构版本;
抽取模块,用于获取输入到所述旧版本应用的入参参数,并按照预设的抽样规则从获取到的所有入参参数中抽取出目标入参参数;
获取模块,用于获取所述旧版本应用处理所述目标入参参数后得到的第一出参参数;
输入模块,用于将所述目标入参参数输入所述新版本应用,并获取所述新版本应用处理所述目标入参参数后得到的第二出参参数;
替换模块,用于当判定所述第一出参参数与所述第二出参参数一致时,使用所述新版本应用替换所述旧版本应用。
9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210207226.3A CN114416596A (zh) | 2022-03-04 | 2022-03-04 | 一种测试应用的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210207226.3A CN114416596A (zh) | 2022-03-04 | 2022-03-04 | 一种测试应用的方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416596A true CN114416596A (zh) | 2022-04-29 |
Family
ID=81264521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210207226.3A Pending CN114416596A (zh) | 2022-03-04 | 2022-03-04 | 一种测试应用的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416596A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115032493A (zh) * | 2022-07-15 | 2022-09-09 | 扬州晶新微电子有限公司 | 一种基于管芯参数显示的晶圆测试方法及*** |
-
2022
- 2022-03-04 CN CN202210207226.3A patent/CN114416596A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115032493A (zh) * | 2022-07-15 | 2022-09-09 | 扬州晶新微电子有限公司 | 一种基于管芯参数显示的晶圆测试方法及*** |
CN115032493B (zh) * | 2022-07-15 | 2023-10-13 | 扬州晶新微电子有限公司 | 一种基于管芯参数显示的晶圆测试方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机***和介质 | |
US9703690B2 (en) | Determining test case efficiency | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN112559354A (zh) | 前端代码规范检测方法、装置、计算机设备及存储介质 | |
CN113377667B (zh) | 一种基于场景的测试方法、装置、计算机设备及存储介质 | |
CN109614325B (zh) | 一种确定控件属性的方法及装置、电子设备和存储介质 | |
CN110543420A (zh) | 一种软件测试方法、***、终端及存储介质 | |
CN114416596A (zh) | 一种测试应用的方法、装置、计算机设备及存储介质 | |
CN105117340A (zh) | 用于iOS浏览器应用质量评估的URL检测方法和装置 | |
CN114706740A (zh) | 混沌实验方法、装置、存储介质和设备 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN111949548B (zh) | 一种自动化越权渗透测试方法和存储设备 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN116431522A (zh) | 一种低代码对象存储网关自动化测试方法及*** | |
CN116069650A (zh) | 一种测试用例的生成方法及装置 | |
CN115543816A (zh) | 软件回归测试结果验证方法、装置、设备及存储介质 | |
CN115576831A (zh) | 一种测试案例推荐方法、装置、设备及存储介质 | |
CN113849484A (zh) | 一种大数据组件升级方法、装置、电子设备及存储介质 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN113342632A (zh) | 仿真数据自动化处理方法、装置、电子设备及存储介质 | |
CN113672514A (zh) | 测试方法、装置、服务器及存储介质 | |
CN112346994A (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN115576821B (zh) | 一种验证方法、装置,电子设备及存储介质 | |
CN111159988A (zh) | 一种模型处理方法、装置、计算机设备及存储介质 | |
CN113282304B (zh) | 基于app安装列表识别虚拟机的*** |
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 |