一种规则验证方法及终端与流程

文档序号:15200149发布日期:2018-08-19 10:43阅读:150来源:国知局

本发明涉及数据处理技术领域,尤其涉及一种规则验证方法及终端。



背景技术:

开发人员对于在开发过程中涉及的规则的变更(包括修改规则,新增规则,如年龄最大不能超过65即为一条规则)以及开发的代码等不能保证百分之百的正确,发现某条规则有问题的时间越长(可能是规则本身问题,也可能是开发代码的问题),潜在的损失就越大。因此亟需一个提高规则验证的方法以及时发现开发中有问题的规则。



技术实现要素:

本发明提供了一种规则验证方法及终端,可以利用案例集,将新项目和旧项目中执行所有规则得到的结果进行对比,以使相关人员关注对比结果有差异的规则,提高了规则验证的效率。

一方面,本发明提供了一种规则验证方法,该方法包括:

获取案例集;

根据案例集新建对新项目进行规则验证的任务;

配置用于执行所述任务的线程;

所述线程到所述案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行;

所述线程利用所述案例到新项目中执行所有规则得到第一结果;

所述线程利用所述案例到旧项目中执行所有规则得到第二结果;

将所述第一结果与所述第二结果进行对比以得到对比结果。

另一方面,本发明提供了一种终端,该终端包括:

获取单元,用于获取案例集;

任务建立单元,用于根据案例集新建对新项目进行规则验证的任务;

配置单元,用于配置用于执行所述任务的线程;

提取单元,用于由所述线程到所述案例集中提取未执行的案例并修改所述案例的案例状态为执行;

第一结果单元,用于由所述线程利用所述案例到新项目中执行所有规则得到第一结果;

第二结果单元,用于由所述线程利用所述案例到旧项目中执行所有规则得到第二结果;

对比单元,用于将所述第一结果与所述第二结果进行对比以得到对比结果。

本发明实施例提供的方法和终端,利用案例集,将新项目和旧项目中执行所有规则得到的结果进行对比,以对新项目中开发的规则进行验证,使相关人员关注对比结果有差异的规则,提高了新项目中规则验证的效率。

附图说明

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

图1是本发明实施例提供的一种规则验证方法的流程示意图;

图2是本发明实施例提供的一种规则验证方法的子流程示意图;

图3是本发明实施例提供的一种规则验证方法的子流程示意图;

图4是本发明另一实施例提供的一种规则验证方法的流程示意图;

图5是本发明实施例提供的一种规则验证方法的子流程示意图;

图6是本发明实施例提供的一种终端的示意性框图;

图7是本发明实施例提供的配置单元的示意性框图;

图8是本发明实施例提供的调整单元的示意性框图;

图9是本发明另一实施例提供的一种终端的示意性框图;

图10是本发明实施例提供的线程数获取单元的示意性框图;

图11是本发明又一实施例提供的一种终端的示意性框图。

具体实施方式

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

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

图1为本发明实施例提供的一种规则验证方法的流程示意图。该方法包括s101~s108。

s101,获取案例集。一个案例集包括多个案例。如在保险行业中,一个案例对应一份保单,一份保单包括了投保人所有的信息,如身高、体重、历史投保信息等。

s102,根据案例集新建对新项目进行规则验证的任务。新建任务后,就执行该任务。s103-s108为执行任务的内容。

s103,配置用于执行该任务的线程。该任务的线程数保存在预设配置文件中,该任务的线程数初始值为预设值,可以通过修改预设配置文件中相应的配置项来修改该任务的线程数。具体地,如图2所示,s103包括s201-s202。s201,获取预设配置文件中的线程数。通过获取预设配置文件中相应的配置项的值来获取预设配置文件中的线程数。s202,调整该任务当前的线程数使该线程数等于预设配置文件中的线程数。可以理解地,在任务开始执行时,任务当前的线程数为零。具体地,如图3所示,s202包括s301-303。s301,判断预设配置文件中的线程数是否大于任务当前的线程数。若预设配置文件中的线程数大于任务当前的线程数,执行s302;若预设配置文件中的线程数小于任务当前的线程数,执行s303。s302,新建线程,其中,新建线程的数量为配置文件中的线程数与任务当前的线程数的差值。s303,在线程执行案例结束后关闭所述线程,其中关闭线程的数量为该任务当前的线程数与预设配置文件中的线程数的差值。关闭线程可以将该线程的状态设置为false。

s104,所述线程到案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行。该任务的线程到案例集中提取案例状态为未执行的案例,优选地,到案例集中按预设顺序提取案例状态为未执行的案例。如按照案例集中案例的编号顺序或者其他合适的顺序来提取案例状态为未执行的案例。例如,若该任务配置有10个线程,那么该10个线程都到案例集中提取案例,按照案例集中案例的编号顺序提取,一个线程提取案例状态为未执行的案例后就马上把该案例的案例状态修改为执行,以防止其他的线程取到同一条案例。同时多个线程并行执行,提高了规则验证的效率,每个线程提取案例后把案例的案例状态修改为执行,同时提高了效率和准确性。

s105,所述线程利用所述案例到新项目中执行所有规则得到第一结果。一个线程提取到案例后,就利用该案例到新项目中执行所有规则得到第一结果。

s106,所述线程利用所述案例到旧项目中执行所有规则得到第二结果。其中,新项目和旧项目指的是能解决至少有一个相同基本问题的不同时期的项目,也可以指一个项目中的新版本和旧版本。

s107,将所述第一结果与所述第二结果进行对比以得到对比结果。该线程将在新项目和就项目中执行所有规则的第一结果和第二结果进行对比,得到对比结果,以使开发人员关注对比结果中差异的规则。

另外,在执行任务的过程中,若某个线程执行一个案例的时间超过预设时间,那么将该案例的案例状态修改为异常,接着返回到该线程到案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行的步骤。可以排除超时的异常案例,任务的执行不会因异常的案例而停止,即线程接着执行其他案例状态为未执行的案例,进一步提高规则验证的效率。此外,当任务出现中断时,会保存出现中断时的情况,如保存出现中断时的案例。当任务再次执行时,线程会接着从出现中断时的案例开始执行,即线程提取中断时保存的案例将该案例的案例状态修改为执行,以及该线程利用该案例到新项目和旧项目中分别执行所有规则以得到第一结果和第二结果,并将第一结果与第二结果进行对比以得到对比结果,直到没有案例状态为未执行的案例,再次提高规则验证的效率,以避免中断对任务执行的影响。如因为测试环境经常因部署操作而需重启环境,重启后,未完成的任务不会中断,会继续执行。例如:一个任务有1000个案例,执行到500时,服务器重启,重启后,程序会继续执行剩下的500个案例,直到完成为止。

图4为本发明另一实施例提供的一种规则验证方法的流程示意图。该方法包括s401~s409。与图1实施例的区别在于:增加了步骤s408-s409。

s401,获取案例集。一个案例集包括多个案例。

s402,根据案例集新建对新项目进行规则验证的任务。新建任务后,就执行该任务。s403-s409为执行任务的内容。

s403,配置用于执行该任务的线程。该任务的线程数保存在预设配置文件中,该任务的线程数初始值为预设值,可以通过修改预设配置文件中相应的配置项来修改该任务的线程数。具体地,如图2所示,s403包括s201-s202。s201,获取预设配置文件中的线程数。通过获取预设配置文件中相应的配置项的值来获取预设配置文件中的线程数。s202,调整该任务当前的线程数使该线程数等于预设配置文件中的线程数。可以理解地,在任务开始执行时,任务当前的线程数为零。如图3所示,s202包括s301-303,具体请参看图3实施例描述的内容。

s404,所述线程到案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行。该任务的线程到案例集中提取案例状态为未执行的案例,优选地,到案例集中按顺序提取案例状态为未执行的案例。例如,若该任务有配置有10个线程,那么该10个线程都到案例集中提取案例,按照案例集中排列的顺序提取,一个线程提取案例状态为未执行的案例后就马上把该案例的案例状态修改为执行,以防止其他的线程取到同一条案例。同时多个线程并行执行,提高了规则验证的效率,每个线程提取案例后把案例的案例状态修改为执行,同时提高了效率和准确性。

s405,所述线程利用所述案例到新项目中执行所有规则得到第一结果。

s406,所述线程利用所述案例到旧项目中执行所有规则得到第二结果。其中,新项目和旧项目指的是能解决至少有一个相同基本问题的不同时期的项目,也可以指一个项目中的新版本和旧版本。

s407,将所述第一结果与所述第二结果进行对比以得到对比结果。该线程将在新项目和就项目中执行所有规则的第一结果和第二结果进行对比,得到对比结果,以使开发人员关注对比结果中差异的规则,提高规则验证的效率。

s408,判断案例集中是否有案例状态为未执行的案例。如果有案例状态为未执行的案例,执行s409;若没有案例状态为未执行的案例,结束。

s409,判断是否达到预设时间。优选地,预设时间为5分钟。若达到预设时间,执行s403;若没有达到预设时间,执行s404。可以理解地,该任务开始执行时,配置用户执行该任务的线程;在后续任务执行的过程中,每隔预设时间就再执行配置用户执行该任务的线程的步骤,即在后续任务执行的过程中,每隔预设时间就获取预设配置文件中的线程数,调整该任务当前的线程数使该线程数等于预设配置文件中的线程数。该实施例可以动态的调整该任务的线程数,以更好的利用终端资源,提高规则验证的效率。

此外,该实施例同样可以排除超时的异常案例,任务的执行不会因异常的案例而停止;该实施例同样当任务出现中断时,会保存出现中断时的情况,如保存出现中断时的案例,当任务再次执行时,任务的线程会接着从出现中断时的案例开始执行。

在其他的实施例中,预设配置文件中的线程数的设置与当前时间有关。具体地,如图5所示,s201包括s401-s402。s401,获取当前时间。s402,获取预设配置文件中设置的当前时间对应的线程数。如白天9:00-19:00,预设配置文件中设置的对应的线程数为1个,其他时间,预设配置文件中设置的对应的线程数为10个。可以理解地,白天工作的时间,设置的线程数少,不用占用终端过多的内存资源;晚上非工作时间,终端几乎没人用,设置的线程多,充分利用终端的资源,提高规则验证的效率。

图6为本发明实施例提供的一种终端的示意性框图。该终端60包括获取单元601、任务建立单元602、配置单元603、提取单元604、第一结果单元605、第二结果单元606、对比单元607。

获取单元601,用于获取案例集。一个案例集包括多个案例。如在保险行业中,一个案例对应一份保单,一份保单包括了投保人所有的信息,如身高、体重、历史投保信息等。

任务建立单元602,用于根据案例集新建对新项目进行规则验证的任务。

配置单元603,用于配置用于执行所述任务的线程。该任务的线程数保存在预设配置文件中,可以通过修改预设配置文件中相应的配置项来修改该任务的线程数。具体地,如图7所示,配置单元603包括线程数获取单元701、调整单元702。线程数获取单元701,用于获取预设配置文件中的线程数。通过获取预设配置文件中相应的配置项的值来获取预设配置文件中的线程数。调整单元702,用于调整该任务当前的线程数使该线程数等于预设配置文件中的线程数。可以理解地,在任务开始执行时,任务当前的线程数为零。具体地,如图8所示,调整单元702包括线程数判断单元801、线程建立单元802、线程关闭单元803。线程数判断单元801,用于判断预设配置文件中的线程数是否大于任务当前的线程数。线程建立单元802,若预设配置文件中的线程数大于任务当前的线程数,新建线程,其中,新建线程的数量为配置文件中的线程数与任务当前的线程数的差值。线程关闭单元803,若预设配置文件中的线程数小于任务当前的线程数,在线程执行案例结束后关闭所述线程,其中关闭线程的数量为该任务当前的线程数与预设配置文件中的线程数的差值。关闭线程可以将该线程的状态设置为false。

提取单元604,用于由所述线程到所述案例集中提取未执行的案例并修改所述案例的案例状态为执行。该任务的线程到案例集中提取案例状态为未执行的案例,优选地,到案例集中按预设顺序提取案例状态为未执行的案例。如按照案例集中案例的编号顺序或者其他合适的顺序来提取案例状态为未执行的案例。例如,若该任务有配置有10个线程,那么该10个线程都到案例集中提取案例,按照案例集中案例的编号顺序提取,一个线程提取案例状态为未执行的案例后就马上把该案例的案例状态修改为执行,以防止其他的线程取到同一条案例。同时多个线程并行执行,提高了规则验证的效率,每个线程提取案例后把案例的案例状态修改为执行,同时提高了效率和准确性。

第一结果单元605,用于由所述线程利用所述案例到新项目中执行所有规则得到第一结果。一个线程提取到案例后,就利用该案例到新项目中执行所有规则得到第一结果。

第二结果单元606,用于由所述线程利用所述案例到旧项目中执行所有规则得到第二结果。其中,新项目和旧项目指的是能解决至少有一个相同基本问题的不同时期的项目,也可以指一个项目中的新版本和旧版本。

对比单元607,用于将所述第一结果与所述第二结果进行对比以得到对比结果,以使开发人员关注对比结果中差异的规则。

另外,在执行任务的过程中,若某个线程执行一个案例的时间超过预设时间,那么将该案例的案例状态修改为异常,接着返回到该线程到案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行的步骤。可以排除超时的异常案例,任务的执行不会因异常的案例而停止,即线程接着执行其他案例状态为未执行的案例,进一步提高规则验证的效率。此外,当任务出现中断时,会保存出现中断时的情况,如保存出现中断时的案例。当任务再次执行时,线程会接着从出现中断时的案例开始执行,即线程提取中断时保存的案例将该案例的案例状态修改为执行,以及该线程利用该案例到新项目和旧项目中分别执行所有规则以得到第一结果和第二结果,并将第一结果与第二结果进行对比以得到对比结果,直到没有案例状态为未执行的案例,再次提高规则验证的效率,以避免中断对任务执行的影响。如因为测试环境经常因部署操作而需重启环境,重启后,未完成的任务不会中断,会继续执行。例如:一个任务有1000个案例,执行到500时,服务器重启,重启后,程序会继续执行剩下的500个案例,直到完成为止。

图9为本发明另一实施例提供的一种终端的示意性框图。该终端90包括获取单元901、任务建立单元902、配置单元903、提取单元904、第一结果单元905、第二结果单元906、对比单元907、判断单元908。该终端90与终端60的区别在于:判断单元908。

判断单元908,用于判断案例集中是否有案例状态为未执行的案例。判断单元908还用于若有案例状态为未执行的案例,判断是否达到预设时间。若达到预设时间,执行配置单元的内容;若没有达到预设时间,触发提取单元。优选地,预设时间为5分钟。可以理解地,该任务开始执行时,配置用户执行该任务的线程;在后续任务执行的过程中,每隔预设时间就再执行配置用户执行该任务的线程的步骤,即在后续任务执行的过程中,每隔预设时间就获取预设配置文件中的线程数,调整该任务当前的线程数使该线程数等于预设配置文件中的线程数。该实施例可以动态的调整该任务的线程数,以更好的利用终端资源,提高规则验证的效率。

在其他的实施例中,预设配置文件中的线程数的设置与当前时间有关。具体地,如图10所示,线程数获取单元701包括时间获取单元101、文件线程数获取单元102。时间获取单元101,用于获取当前时间。文件线程数获取单元102,用于获取预设配置文件中设置的当前时间对应的线程数。如白天9:00-19:00,预设配置文件中设置的对应的线程数为1个,其他时间,预设配置文件中设置的对应的线程数为10个。可以理解地,白天工作的时间,设置的线程数少,不用占用终端过多的内存资源;晚上非工作时间,终端几乎没人用,设置的线程多,充分利用终端的资源,提高规则验证的效率。

图11为本发明第四实施例提供的一种终端的示意性框图。该终端80包括包括存储器111以及处理器112,上述存储器111以及处理器112通过总线113连接。其中:

存储器111,用于存储带有各种功能的程序数据。本发明实施例中存储器111存储的数据包括案例集、预设配置文件、第一结果、第二结果、对比结果等,以及其他可调用并运行的程序数据。具体实现中,本发明实施例的存储器111可以是系统存储器,比如,挥发性的(诸如ram),非易失性的(诸如rom,闪存等),或者两者的结合。具体实现中,本发明实施例的存储器111还可以是系统之外的外部存储器,比如,磁盘、光盘、磁带等。

处理器112,用于调用存储器111中存储的程序数据,并执行如下操作:

获取案例集;根据案例集新建对新项目进行规则验证的任务;配置用于执行所述任务的线程;所述线程到所述案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行;所述线程利用所述案例到新项目中执行所有规则得到第一结果;所述线程利用所述案例到旧项目中执行所有规则得到第二结果;将所述第一结果与所述第二结果进行对比以得到对比结果。其中,所述线程到所述案例集中按顺序提取案例状态为未执行的案例并修改所述案例的案例状态为执行。

处理器112,还执行如下操作:

判断案例集中是否有案例状态为未执行的案例;若有,返回所述线程到案例集中提取案例状态为未执行的案例并修改所述案例的案例状态为执行的步骤。

处理器112,还执行如下操作:

获取预设配置文件中的线程数;调整所述任务当前的线程数使该线程数等于所述预设配置文件中的线程数。

处理器112,还执行如下操作:

判断预设配置文件中的线程数是否大于所述任务当前的线程数;若大于所述任务当前的线程数,新建线程,其中,新建线程的数量为配置文件中的线程数与任务当前的线程数的差值;若小于所述任务当前的线程数,在线程执行案例结束后关闭所述线程,其中关闭线程的数量为所述任务当前的线程数与预设配置文件中的线程数的差值。

处理器112,还执行如下操作:

获取当前时间;获取预设配置文件中设置的当前时间对应的线程数。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

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

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

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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