测试方法、装置、计算机装置及存储介质与流程

文档序号:18884441发布日期:2019-10-15 20:39阅读:157来源:国知局
测试方法、装置、计算机装置及存储介质与流程

本发明涉及测试技术领域,尤其涉及一种测试方法、装置、计算机装置及存储介质。



背景技术:

在信用卡的使用过程中,会产生信用卡数据,这些信用卡数据可以反应信用卡的使用状况,通常通过预先编写的程序(如信用卡风控系统)对信用卡数据进行处理,以获取信用卡的使用状况,若该程序运行错误将得到信用卡错误的使用状况,因此,有必要对该类处理信用卡数据的程序进行测试。

在这一测试过程中需要将测试信用卡数据发送至该程序,然而现有的独立的接口测试工具(如jmeter,fiddle,soapui,robotframework,sockettool)或者是嵌入到浏览器中以插件形式存在的测试工具(如httprequester,httptool,poster,restclient,postman,hhtpanalyzer)都无法对这类信用卡数据进行批量数据发送,更不用说快速地通过测试信用卡数据对该类程序进行验证。



技术实现要素:

鉴于以上内容,有必要提供一种测试方法、装置、计算机装置及存储介质,能够快速地对处理信用卡数据的程序进行测试。

本发明提供一种测试方法,所述方法包括:

接收测试指令,获取批量信用卡数据;

将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化;

获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量;

获取通过所述待测试程序处理所述批量信用卡数据的预设断言;

将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。

在本发明可选实施中,所述获取批量信用卡数据包括:

在用户界面显示默认信用卡数据,所述默认信用卡数据包含多个信用卡字段的数据;

获取所述多个信用卡字段中的待修改信用卡字段;

接收用户在所述用户界面进行操作触发的修改指令,所述修改指令包含对所述待修改信用卡字段对应的数据的修改方式;

根据所述修改指令对默认信用卡数据中所述待修改信用卡字段对应的数据进行修改,确定修改后的所述默认信用卡数据为所述批量信用卡数据。

在本发明可选实施中,所述方法还包括:

获取预设的测试前置条件和/或测试后置条件;

在接收到所述测试指令之前或获取所述批量信用卡数据之前,根据所述测试前置条件执行测试前置操作,所述测试前置操作包括清理无效测试数据;

在得到所述预设断言的结果之后,根据所述测试后置条件执行测试后置操作,所述测试后置操作包括从缓存中删除所述批量信用卡数据。

在本发明可选实施中,所述将所述批量信用卡数据以消息队列的形式发送至待测试程序包括:

获取发送所述信用卡数据的发送条件;

根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

在本发明可选实施例中,所述发送条件包括发送数量和/或发送次数,所述根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序包括:

判断所述发送次数是否大于两次;

若所述发送次数大于两次,获取每次发送的时间间隔;

根据所述时间间隔将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

在本发明可选实施例中,所述将所述批量信用卡数据以消息队列的形式发送至待测试程序包括:

将所述批量信用卡数据发送至数据系统,以使所述测试程序从所述数据系统获取所述批量信用卡数据。

在本发明可选实施例中,所述方法还包括:

将所述批量信用卡数据持久化至预设数据库中。

本发明还提供一种测试装置,所述装置包括:

第一获取模块,用于接收测试指令,获取批量信用卡数据;

发送模块,用于将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化;

第二获取模块,用于获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量;

第三获取模块,用于获取通过所述待测试程序处理所述批量信用卡数据的预设断言;

匹配模块,用于将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。

在本发明可选实施例中,所述第一获取模块获取批量信用卡数据包括:

在用户界面显示默认信用卡数据,所述默认信用卡数据包含多个信用卡字段的数据;

获取所述多个信用卡字段中的待修改信用卡字段;

接收用户在所述用户界面进行操作触发的修改指令,所述修改指令包含对所述待修改信用卡字段对应的数据的修改方式;

根据所述修改指令对默认信用卡数据中所述待修改信用卡字段对应的数据进行修改,确定修改后的所述默认信用卡数据为所述批量信用卡数据。

在本发明可选实施例中,所述装置还包括操作模块,用于:

获取预设的测试前置条件和/或测试后置条件;

在接收到所述测试指令之前或获取所述批量信用卡数据之前,根据所述测试前置条件执行测试前置操作,所述测试前置操作包括清理无效测试数据;

在得到所述预设断言的结果之后,根据所述测试后置条件执行测试后置操作,所述测试后置操作包括从缓存中删除所述批量信用卡数据。

在本发明可选实施例中,所述发送模块具体用于:

获取发送所述信用卡数据的发送条件;

根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

在本发明可选实施例中,所述发送条件包括发送数量和/或发送次数,所述根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序包括:

判断所述发送次数是否大于两次;

若所述发送次数大于两次,获取每次发送的时间间隔;

根据所述时间间隔将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

在本发明可选实施例中,所述发送模块具体用于:

将所述批量信用卡数据发送至数据系统,以使所述测试程序从所述数据系统获取所述批量信用卡数据。

在本发明可选实施例中,所述装置还包括:

持久化模块,用于将所述批量信用卡数据持久化至预设数据库中。

本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的测试方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的测试方法。

由以上技术方案看出,本发明接收测试指令,获取批量信用卡数据;将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化;获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量;获取通过所述待测试程序处理所述批量信用卡数据的预设断言;将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。从而能够批量发送信用卡数据,并基于批量的信用卡数据验证待测试程序的运行是否正确,实现了快速地对处理信用卡数据的程序进行测试的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例提供的一种测试方法的流程图;

图2是本发明实施例提供的一种测试装置的功能模块图;

图3是本发明实现测试方法的较佳实施例的计算机装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,图1为本发明实施例提供的一种测试方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s11,接收测试指令,获取批量信用卡数据。

本实施例中,所述测试指令是对处理信用卡数据的程序进行测试的指令。

所述批量信用卡数据为多条信用卡数据,其中,每条信用卡数据可以包括信用卡号、持卡人信息、客户号、客户邮箱、交易时间、交易金额等一个或多个信用卡字段(即与信用卡有关的字段)的数据。

本实施例中,某一信用卡数据可以为某一信用卡的交易数据或非交易数据。具体的,交易数据是通过信用卡进行交易(如消费、还款等)的情况下所产生的数据;非交易数据是未通过信用卡进行交易的情况下所产生的数据。

例如,通过信用卡进行消费或还款产生的数据为交易数据,对信用卡的信息(如还款日、已出账单、未出账单)进行查询、设置所产生的数据为非交易数据。

所述批量信用卡数据是测试数据用于对处理信用卡数据的程序进行测试。一种可选实施例中,所述批量信用卡数据为预先设置的默认信用卡数据。

可选的,在本发明另一实施例中,所述获取批量信用卡数据包括:

在用户界面显示默认信用卡数据,所述默认信用卡数据包含多个信用卡字段的数据;

获取所述多个信用卡字段中的待修改信用卡字段;

接收用户在所述用户界面进行操作触发的修改指令,所述修改指令包含对所述待修改信用卡字段对应的数据的修改方式;

根据所述修改指令对默认信用卡数据中所述待修改信用卡字段对应的数据进行修改,确定修改后的所述默认信用卡数据为所述批量信用卡数据。

本实施例中,所述用户界面为电子设备的显示屏,例如,在显示屏中的web网页内显示默认信用卡数据,该默认信用卡数据为至少两条信用卡数据。

所述待修改信用卡字段可以为默认的待修改信用卡字段,或者是用户选取的待修改信用卡字段。

例如,待修改信用卡字段为信用卡卡号、客户号、持卡人信息。

在本实施例中,用户在用户界面进行的操作可以为选择待修改字段的数据填充方式(例如,将信用卡卡号的数据填充方式为顺序递增)。

通过本实施例,可以使用户在用户界面中快速地创建批量信用卡数据。

s12,将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化。

在本实施例中,待测试程序为处理信用卡数据的程序,具体的,待测试程序是基于批量信用卡数据进行运算与处理,并根据对批量信用卡数据的运算和处理输出运算结果的程序。

例如,所述待测试程序可以是计算批量信用卡数据中同一信用卡的交易总金额;或者所述待测试程序可以是计算批量信用卡数据中同一信用卡的交易总次数;或者所述待测试程序可以是计算批量信用卡数据中对某一次信用卡进行查询操作的查询次数。

所述消息队列(messagequeue,mq)是一种跨进程的通信机制,通过使用消息队列,可以异步处理请求,从而缓解系统压力。

在本实施例中,将批量信用卡数据保存在消息队列中,以消息队列的形式进行不同系统之间的通信,从而实现将信用卡数据进行批量传输。

可选的,在本发明另一实施例中,所述将所述批量信用卡数据以消息队列的形式发送至待测试程序包括:

将所述批量信用卡数据发送至数据系统,以使所述测试程序从所述数据系统获取所述批量信用卡数据。

本实施例中,所述数据系统为用于存储信用卡数据的系统。

在本实施例中,当批量信用卡数据发送至数据系统之后,待测试程序(如信用卡风控系统)从数据系统获取批量信用卡数据,并基于获取到的批量信用卡数据运行。

通过本实施例,可以将信用卡数据全部存储于一数据中心,方便数据的保存与管理。

可选的,在本发明另一实施例中,所述将所述批量信用卡数据以消息队列的形式发送至待测试程序包括:

获取发送所述信用卡数据的发送条件;

根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

本实施例中,所述发送条件可以为预先设定的。

例如,发送条件为发送时间,发送条件为顺序等。

在本发明另一实施例中,所述发送条件可以根据批量信用卡数据的数量确定。

通过本实施例,可以控制批量信用卡数据发送的方式。

可选的,在本发明另一实施例中,所述发送条件包括发送数量和/或发送次数,所述根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序包括:

判断所述发送次数是否大于两次;

若所述发送次数大于两次,获取每次发送的时间间隔;

根据所述时间间隔将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

本实施例中,所述批量信用卡数据可以分批发送,每批发送若干条信用卡数据。

例如,批量信用卡数据包含100条信用卡数据,发送次数为5次,发送数量为20条,则在发送时,该批量信用卡数据分5次发送,每次发送20条信用卡数据。

在本实施例中,所述数据发送的时间间隔为预先设定的,例如,预先设置为5s,则在获取到每次发送的时间间隔之后,每间隔5s根据发送数量发送多条信用卡数据。

在本实施例中,可以分批发送用于测试的信用卡数据,避免数据一次发送过多造成的来不及处理和队列堵塞,也避免数据一次发送过少限制系统资源,通过根据数据发送的时间间隔进行数据发送,提高测试过程可控性以及测试的流畅性。

s13,获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量。

所述结果变量为所述待测试程序基于批量信用卡数据运行返回的结果。

例如,结果变量为某一信用卡号的持有人登陆查询信用卡的次数;或者,结果变量为某一信用卡在预设时间内的交易总金额;或者,结果变量为某一信用卡在预设时间内交易超过预设金额的次数。

s14,获取通过所述待测试程序处理所述批量信用卡数据的预设断言。

断言是以布尔表达式的形式体现。本实施例中,所述预设断言为预先设置的断言,即预先设置的布尔表达式。

例如:assert.areequal(program.add(a,b),40),表示断言a的值与b的值传递到方法add(intnum1,num2)中得到的结果为40,即与断言表达式中预先假设的“40”相等。在实际执行时,若a的值与b的值传递到方法add之后,结果不为40,则该断言的结果为false;若a的值与b的值传递到方法add之后,结果为40,则该断言的结果为true。

具体的,本实施例中,预设断言是根据待测试程序的功能以及批量信用卡数据进行设置的,通过断言可以验证待测试程序基于批量信用卡数据的执行是否有误。

例如,预设断言为假设批量信用卡数据中某一信用卡的消费总金额超过5000元的交易次数为3次。

s15,将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。

本实施例中,预设断言的结果为false或者是true,若预设断言的结果为true,表明待测试程序的逻辑没有错误;若预设断言的结果为false,表明待测试程序的逻辑存在错误。

例如,预设断言为假设批量信用卡数据中某一信用卡的消费总金额超过5000元的交易次数为3次,其中,3为断言的预期结果,则结果变量是基于批量信用卡数据运行待测试程序得到的结果,若该结果为3,该结果与断言的预期结果匹配,确定断言的结果为true,表明待测试程序计算金额超过5000原的交易次数时没有错误;若基于批量信用卡数据运行待测试程序得到的结果不为3,例如为2,则该结果与断言的预期结果不匹配,确定断言的结果为false,表明待测试程序计算金额超过5000原的交易次数时存在错误。

可选的,在本发明另一实施例中,所述方法还包括:

将所述批量信用卡数据持久化至预设数据库中。

一种可选的实施例中,在在获取到批量信用卡数据之后,且发送批量信用卡数据之前将批量信用卡数据持久化至预设数据库中。

另一种可选的实施例中,在发送批量信用卡数据之后将批量信用卡数据持久化至预设数据库中。

本实施例中,将批量信用卡数据持久化至预设数据库包括将批量信用卡数据保存至预设数据库。同时,持久化还包括和数据库相关的其他操作,通过持久化可以封装数据访问细节,为大部分业务逻辑提供面向对象的api函数,并且使得批量信用卡数据可以复用,即可以通过访问数据的api函数来访问持久化到数据库中的批量信用卡数据。

可选的,在本发明另一实施例中,所述方法还包括:

获取预设的测试前置条件和/或测试后置条件;

在接收到所述测试指令之前或获取所述批量信用卡数据之前,根据所述测试前置条件执行测试前置操作,所述测试前置操作包括清理无效测试数据;

在得到所述预设断言的结果之后,根据所述测试后置条件执行测试后置操作,所述测试后置操作包括从缓存中删除所述批量信用卡数据。

在一种可选实施例中,获取预设的测试前置条件和/或测试后置条件包括:获取用户在网页上设置的测试前置条件和/或测试后置条件。在该实施例中,所述测试前置条件可以是用户在web网页上设置的。

在本实施例中,在测试之前将清理无效测试数据可以使测试时不会受到无效数据的干扰,在测试之后从缓存中删除批量信用卡数据可以清理缓存空间,使得下一次测试时不会受到前一次测试数据的影响。

通过本实施例,可以快速的在测试之前以及测试之后对测试相关的事项进行配置和自动处理,提高测试效率。

本发明提供的一种测试方法,接收测试指令,获取批量信用卡数据;将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化;获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量;获取通过所述待测试程序处理所述批量信用卡数据的预设断言;将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。从而能够批量发送信用卡数据,并基于批量的信用卡数据验证待测试程序的运行是否正确,实现了快速地对处理信用卡数据的程序进行测试的目的。

如图2所示,图2为本发明实施例提供的一种测试装置的功能模块图。所述测试装置包括第一获取模块210、发送模块220、第二获取模块230、第三获取模块240和匹配模块250。本发明所称的模块是指一种能够被处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机设备的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

第一获取模块210,用于接收测试指令,获取批量信用卡数据。

本实施例中,所述测试指令是对处理信用卡数据的程序进行测试的指令。

所述批量信用卡数据为多条信用卡数据,其中,每条信用卡数据可以包括信用卡号、持卡人信息、客户号、客户邮箱、交易时间、交易金额等一个或多个信用卡字段(即与信用卡有关的字段)的数据。

本实施例中,某一信用卡数据可以为某一信用卡的交易数据或非交易数据。具体的,交易数据是通过信用卡进行交易(如消费、还款等)的情况下所产生的数据;非交易数据是未通过信用卡进行交易的情况下所产生的数据。

例如,通过信用卡进行消费或还款产生的数据为交易数据,对信用卡的信息(如还款日、已出账单、未出账单)进行查询、设置所产生的数据为非交易数据。

所述批量信用卡数据是测试数据用于对处理信用卡数据的程序进行测试。一种可选实施例中,所述批量信用卡数据为预先设置的默认信用卡数据。

可选的,在本发明另一实施例中,所述第一获取模块210获取批量信用卡数据包括:

在用户界面显示默认信用卡数据,所述默认信用卡数据包含多个信用卡字段的数据;

获取所述多个信用卡字段中的待修改信用卡字段;

接收用户在所述用户界面进行操作触发的修改指令,所述修改指令包含对所述待修改信用卡字段对应的数据的修改方式;

根据所述修改指令对默认信用卡数据中所述待修改信用卡字段对应的数据进行修改,确定修改后的所述默认信用卡数据为所述批量信用卡数据。

本实施例中,所述用户界面为电子设备的显示屏,例如,在显示屏中的web网页内显示默认信用卡数据,该默认信用卡数据为至少两条信用卡数据。

所述待修改信用卡字段可以为默认的待修改信用卡字段,或者是用户选取的待修改信用卡字段。

例如,待修改信用卡字段为信用卡卡号、客户号、持卡人信息。

在本实施例中,用户在用户界面进行的操作可以为选择待修改字段的数据填充方式(例如,将信用卡卡号的数据填充方式为顺序递增)。

通过本实施例,可以使用户在用户界面中快速地创建批量信用卡数据。

发送模块220,用于将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化。

在本实施例中,待测试程序为处理信用卡数据的程序,具体的,待测试程序是基于批量信用卡数据进行运算与处理,并根据对批量信用卡数据的运算和处理输出运算结果的程序。

例如,所述待测试程序可以是计算批量信用卡数据中同一信用卡的交易总金额;或者所述待测试程序可以是计算批量信用卡数据中同一信用卡的交易总次数;或者所述待测试程序可以是计算批量信用卡数据中对某一次信用卡进行查询操作的查询次数。

所述消息队列(messagequeue,mq)是一种跨进程的通信机制,通过使用消息队列,可以异步处理请求,从而缓解系统压力。

在本实施例中,将批量信用卡数据保存在消息队列中,以消息队列的形式进行不同系统之间的通信,从而实现将信用卡数据进行批量传输。

可选的,在本发明另一实施例中,所述发送模块220具体用于:

将所述批量信用卡数据发送至数据系统,以使所述测试程序从所述数据系统获取所述批量信用卡数据。

本实施例中,所述数据系统为用于存储信用卡数据的系统。

在本实施例中,当批量信用卡数据发送至数据系统之后,待测试程序(如信用卡风控系统)从数据系统获取批量信用卡数据,并基于获取到的批量信用卡数据运行。

通过本实施例,可以将信用卡数据全部存储于一数据中心,方便数据的保存与管理。

可选的,在本发明另一实施例中,所述发送模块220具体用于:

获取发送所述信用卡数据的发送条件;

根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

本实施例中,所述发送条件可以为预先设定的。

例如,发送条件为发送时间,发送条件为顺序等。

在本发明另一实施例中,所述发送条件可以根据批量信用卡数据的数量确定。

通过本实施例,可以控制批量信用卡数据发送的方式。

可选的,在本发明另一实施例中,所述发送条件包括发送数量和/或发送次数,所述根据所述发送条件将所述批量信用卡数据以消息队列的形式发送至所述待测试程序包括:

判断所述发送次数是否大于两次;

若所述发送次数大于两次,获取每次发送的时间间隔;

根据所述时间间隔将所述批量信用卡数据以消息队列的形式发送至所述待测试程序。

本实施例中,所述批量信用卡数据可以分批发送,每批发送若干条信用卡数据。

例如,批量信用卡数据包含100条信用卡数据,发送次数为5次,发送数量为20条,则在发送时,该批量信用卡数据分5次发送,每次发送20条信用卡数据。

在本实施例中,所述数据发送的时间间隔为预先设定的,例如,预先设置为5s,则在获取到每次发送的时间间隔之后,每间隔5s根据发送数量发送多条信用卡数据。

在本实施例中,可以分批发送用于测试的信用卡数据,避免数据一次发送过多造成的来不及处理和队列堵塞,也避免数据一次发送过少限制系统资源,通过根据数据发送的时间间隔进行数据发送,提高测试过程可控性以及测试的流畅性。

第二获取模块230,用于获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量。

所述结果变量为所述待测试程序基于批量信用卡数据运行返回的结果。

例如,结果变量为某一信用卡号的持有人登陆查询信用卡的次数;或者,结果变量为某一信用卡在预设时间内的交易总金额;或者,结果变量为某一信用卡在预设时间内交易超过预设金额的次数。

第三获取模块240,用于获取通过所述待测试程序处理所述批量信用卡数据的预设断言。

断言是以布尔表达式的形式体现。本实施例中,所述预设断言为预先设置的断言,即预先设置的布尔表达式。

例如:assert.areequal(program.add(a,b),40),表示断言a的值与b的值传递到方法add(intnum1,num2)中得到的结果为40,即与断言表达式中预先假设的“40”相等。在实际执行时,若a的值与b的值传递到方法add之后,结果不为40,则该断言的结果为false;若a的值与b的值传递到方法add之后,结果为40,则该断言的结果为true。

具体的,本实施例中,预设断言是根据待测试程序的功能以及批量信用卡数据进行设置的,通过断言可以验证待测试程序基于批量信用卡数据的执行是否有误。

例如,预设断言为假设批量信用卡数据中某一信用卡的消费总金额超过5000元的交易次数为3次。

匹配模块250,用于将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。

本实施例中,预设断言的结果为false或者是true,若预设断言的结果为true,表明待测试程序的逻辑没有错误;若预设断言的结果为false,表明待测试程序的逻辑存在错误。

例如,预设断言为假设批量信用卡数据中某一信用卡的消费总金额超过5000元的交易次数为3次,其中,3为断言的预期结果,则结果变量是基于批量信用卡数据运行待测试程序得到的结果,若该结果为3,该结果与断言的预期结果匹配,确定断言的结果为true,表明待测试程序计算金额超过5000原的交易次数时没有错误;若基于批量信用卡数据运行待测试程序得到的结果不为3,例如为2,则该结果与断言的预期结果不匹配,确定断言的结果为false,表明待测试程序计算金额超过5000原的交易次数时存在错误。

可选的,在本发明另一实施例中,所述装置还包括:

持久化模块,用于将所述批量信用卡数据持久化至预设数据库中。

一种可选的实施例中,在在获取到批量信用卡数据之后,且发送批量信用卡数据之前将批量信用卡数据持久化至预设数据库中。

另一种可选的实施例中,在发送批量信用卡数据之后将批量信用卡数据持久化至预设数据库中。

本实施例中,将批量信用卡数据持久化至预设数据库包括将批量信用卡数据保存至预设数据库。同时,持久化还包括和数据库相关的其他操作,通过持久化可以封装数据访问细节,为大部分业务逻辑提供面向对象的api函数,并且使得批量信用卡数据可以复用,即可以通过访问数据的api函数来访问持久化到数据库中的批量信用卡数据。

可选的,在本发明另一实施例中,所述装置还包括操作模块,用于:

获取预设的测试前置条件和/或测试后置条件;

在接收到所述测试指令之前或获取所述批量信用卡数据之前,根据所述测试前置条件执行测试前置操作,所述测试前置操作包括清理无效测试数据;

在得到所述预设断言的结果之后,根据所述测试后置条件执行测试后置操作,所述测试后置操作包括从缓存中删除所述批量信用卡数据。

在一种可选实施例中,获取预设的测试前置条件和/或测试后置条件包括:获取用户在网页上设置的测试前置条件和/或测试后置条件。在该实施例中,所述测试前置条件可以是用户在web网页上设置的。

在本实施例中,在测试之前将清理无效测试数据可以使测试时不会受到无效数据的干扰,在测试之后从缓存中删除批量信用卡数据可以清理缓存空间,使得下一次测试时不会受到前一次测试数据的影响。

通过本实施例,可以快速的在测试之前以及测试之后对测试相关的事项进行配置和自动处理,提高测试效率。

本发明提供的一种测试装置,通过第一获取模块接收测试指令,获取批量信用卡数据;发送模块将所述批量信用卡数据以消息队列的形式发送至待测试程序,所述待测试程序基于所述批量信用卡数据对所述批量信用卡数据包含的信用卡的使用状况进行量化;第二获取模块获取所述待测试程序基于所述批量信用卡数据运行返回的结果变量;第三获取模块获取通过所述待测试程序处理所述批量信用卡数据的预设断言;匹配模块将所述结果变量输入至所述预设断言,通过所述结果变量与所述预设断言中的预期结果进行匹配,得到所述预设断言的结果。从而能够批量发送信用卡数据,并基于批量的信用卡数据验证待测试程序的运行是否正确,实现了快速地对处理信用卡数据的程序进行测试的目的。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。

如图3所示,图3是本发明实现测试方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。

所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、监控设备等终端。

所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。

所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如ram(random-accessmemory,随机存取存储器)、fifo(firstinfirstout,先进先出存储器)等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、tf卡(trans-flashcard)、智能媒体卡(smartmediacard)、安全数字卡(securedigitalcard)、快闪存储器卡(flashcard)等储存设备等等。

所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种测试方法。所述处理器33又称中央处理器(cpu,centralprocessingunit),是一块超大规模的集成电路,是运算核心(core)和控制核心(controlunit)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1