业务逻辑测试方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 19:35:22
技术领域
本申请涉及数据处理技术领域,特别是涉及一种业务逻辑测试方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的不断发展,业务系统承接了业务处理的大部分数据处理任务,为了保证业务功能正常运行,对业务系统进行监管,定期对业务系统进行测试以确定业务系统的业务逻辑运行情况是否正常成为了目前各业务行业的必要工作。
测试数据是用于测试业务系统功能、业务系统运行逻辑是否正常的重要数据,通过构建大量的测试数据来模拟实际业务处理时的情况,可以及时发现业务系统功能的异常。
然而现有的业务逻辑测试方法,在使用测试数据进行测试时,由于测试数据的构造工作量巨大以及数据字段大多含义复杂,测试人员在生成测试数据时往往需要进行多次调整才能得到符合要求的测试数据,因此传统的业务逻辑测试方法对测试人员技能与测试时间都有较大要求,导致业务逻辑测试的效率大大降低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高业务逻辑测试速率的业务逻辑测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种业务逻辑测试方法,所述方法包括:
获取业务测试场景对应的业务测试模板数据;
根据所述业务测试场景确定所述业务测试场景的场景预期结果;
基于所述业务测试场景、场景预期结果与所述业务测试模板数据生成所述业务测试场景的业务测试数据;
根据所述业务测试数据对所述业务测试场景的业务逻辑进行测试,得到所述业务测试场景的业务逻辑测试结果。
在其中一个实施例中,所述基于所述业务测试场景、场景预期结果与所述业务测试模板数据生成所述业务测试场景的业务测试数据,包括:
基于所述业务测试场景对所述业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段;
根据所述场景预期结果从各所述模板字段中确定关键预期字段;
基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,得到各所述模板字段的字段填充数据;
根据各所述字段填充数据生成所述业务测试场景的业务测试数据。
在其中一个实施例中,所述基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,得到各所述模板字段的字段填充数据,包括:
获取所述关键预期字段的填充类型;
若所述关键预期字段对应的填充类型属于可直接填充类型,则基于各所述模板字段对应的填充类型得到各所述模板字段的字段填充数据。
在其中一个实施例中,所述方法还包括:
若所述关键预期字段对应的填充类型属于不可直接填充类型,则从各所述模板字段中确定所述关键预期字段的相关字段以及非相关字段;
根据所述相关字段对应的填充类型以及所述非相关字段对应的填充类型,分别得到所述相关字段的相关字段填充数据与所述非相关字段的非相关字段填充数据;
对所述相关字段填充数据进行预期结果处理,得到所述关键预期字段的关键字段填充数据;
基于所述相关字段填充数据、非相关字段填充数据以及所述关键字段填充数据,得到各所述模板字段的字段填充数据。
在其中一个实施例中,所述填充类型包括界面输入;
所述基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,得到各所述模板字段的字段填充数据,包括:
若所述模板字段对应的填充类型为界面输入,则基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,生成数据构造界面;
从所述数据构造界面获取所述模板字段的字段填充数据。
在其中一个实施例中,所述填充类型包括直接构造;
所述基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,得到各所述模板字段的字段填充数据,包括:
若所述模板字段对应的填充类型为直接构造,则根据所述测试场景获取预设构造函数;
基于所述预设构造函数得到所述模板字段的字段填充数据。
在其中一个实施例中,所述填充类型包括数据库获取;
所述基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,得到各所述模板字段的字段填充数据,包括:
若所述模板字段对应的填充类型为数据库获取,则根据所述测试场景确定预设获取规则;
基于所述预设获取规则从数据库中获取所述模板字段的字段填充数据。
第一方面,本申请还提供了一种业务逻辑测试装置,所述装置包括:
模板数据获取模块,用于获取业务测试场景对应的业务测试模板数据;
预期信息确定模块,用于根据所述业务测试场景确定所述业务测试场景的场景预期结果;
测试数据生成模块,用于基于所述业务测试场景、场景预期结果与所述业务测试模板数据生成所述业务测试场景的业务测试数据;
测试模块,用于根据所述业务测试数据对所述业务测试场景的业务逻辑进行测试,得到所述业务测试场景的业务逻辑测试结果。
在其中一个实施例中,所述测试数据生成模块还用于:
基于所述业务测试场景对所述业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段;根据所述场景预期结果从各所述模板字段中确定关键预期字段;基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,得到各所述模板字段的字段填充数据;根据各所述字段填充数据生成所述业务测试场景的业务测试数据。
在其中一个实施例中,所述测试数据生成模块还用于:
获取所述关键预期字段的填充类型;若所述关键预期字段对应的填充类型属于可直接填充类型,则基于各所述模板字段对应的填充类型得到各所述模板字段的字段填充数据。
在其中一个实施例中,所述测试数据生成模块还用于:
若所述关键预期字段对应的填充类型属于不可直接填充类型,则从各所述模板字段中确定所述关键预期字段的相关字段以及非相关字段;根据所述相关字段对应的填充类型以及所述非相关字段对应的填充类型,分别得到所述相关字段的相关字段填充数据与所述非相关字段的非相关字段填充数据;对所述相关字段填充数据进行预期结果处理,得到所述关键预期字段的关键字段填充数据;基于所述相关字段填充数据、非相关字段填充数据以及所述关键字段填充数据,得到各所述模板字段的字段填充数据。
在其中一个实施例中,所述填充类型包括界面输入;
所述测试数据生成模块还用于:若所述模板字段对应的填充类型为界面输入,则基于包含所述关键预期字段的各所述模板字段以及各所述模板字段对应的填充类型,生成数据构造界面;从所述数据构造界面获取所述模板字段的字段填充数据。
在其中一个实施例中,所述填充类型包括直接构造;
所述测试数据生成模块还用于:若所述模板字段对应的填充类型为直接构造,则根据所述测试场景获取预设构造函数;基于所述预设构造函数得到所述模板字段的字段填充数据。
在其中一个实施例中,所述填充类型包括数据库获取;
所述测试数据生成模块还用于:若所述模板字段对应的填充类型为数据库获取,则根据所述测试场景确定预设获取规则;基于所述预设获取规则从数据库中获取所述模板字段的字段填充数据。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述业务逻辑测试方法、装置、计算机设备、存储介质和计算机程序产品,提前将业务测试场景与业务测试模板数据进行绑定,在进行业务逻辑测试时,获取业务测试场景对应的业务测试模板数据,根据业务测试场景以及业务测试场景的预期信息对业务测试模板数据进行处理生成业务测试数据,通过绑定模板可以降低测试人员在生成测试数据时的工作量,随后根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果,由于在生成业务测试数据时同时以预期结果为导向,因此,可以避免生成的业务测试数据不符合预期结果而需要进行多次调整的情况发生,从减少构建测试数据的工作量以及增加构建测试数据的预期准确性两个方面出发,有效提升了业务逻辑测试的测试效率,增强了业务系统运行的可靠性。
附图说明
图1为一个实施例中业务逻辑测试方法的应用环境图;
图2为一个实施例中业务逻辑测试方法的流程示意图;
图3为一个实施例中基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据步骤的流程示意图;
图4为另一个实施例中业务逻辑测试方法的流程示意图;
图5为又一个实施例中业务逻辑测试方法的流程示意图;
图6为一个实施例中业务逻辑测试装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本申请实施例提供的业务逻辑测试方法,可以应用于如图1所示的应用环境中。其中,测试工具102可以集成在业务系统104上,通过网络与外部系统106进行通信。数据存储系统可以存储测试工具102需要处理的数据。数据存储系统可以集成在测试工具102或业务系统104上,也可以放在云上或其他网络服务器上。测试工具102从业务系统104上获取业务测试场景对应的1业务测试模板数据,业务测试模板数据由外部系统106上传至业务系统104。测试工具根据业务测试场景确定业务测试场景的场景预期结果,基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据,根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果。其中,业务系统104与外部系统106可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等,也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在其中一个实施例中,业务系统可以连接多个外部系统,外部系统的数量根据业务系统的运行性能决定。其中,外部系统是执行业务并生成业务数据的系统,是业务数据的提供方,业务系统是对执行业务所产生的业务数据进行一定业务逻辑处理计算的后台系统,是业务数据的接收方。以托管业务为例,托管系统是由托管人或托管机构,如银行办理托管业务的后台系统,即可认为是托管业务的业务系统,此时外部系统就可以是托管需要使用的外部数据的提供方,如各交易所、交易机构等。
在一个实施例中,如图2所示,提供了一种业务逻辑测试方法,以该方法应用于图1中的测试工具为例进行说明,包括以下步骤:
步骤202,获取业务测试场景对应的业务测试模板数据。
其中,业务测试场景是在测试工具中,针对某一具体业务的场景,可以认为是在测试工具中的业务场景,与业务系统可运行的业务场景一致。业务测试场景是实现业务逻辑测试运行的基础。不同业务系统保护的业务测试场景不同,例如,在银行业务系统中,可以将“银行流水统计”作为一个业务场景,在托管业务系统中,可以将“托管资产管理”作为一个业务场景。
业务测试场景包含的业务逻辑与业务系统中业务场景包含的业务逻辑一致,即确定了业务测试场景,即可确定该场景下的业务逻辑。
业务测试模板数据是指符合外部系统对应规范的文件模板,可以理解为是外部系统的标准文件模板,业务测试模板数据中可以包含标准格式、列名、各字段信息等模板信息。
在其中一个实施例中,测试人员在为业务系统生成测试工具时,会接收业务系统对应的各外部系统上传的业务测试模板数据,并将各业务测试模板数据与其对应的业务测试场景绑定,一同存储在业务系统的数据存储库中,方便进行业务逻辑测试时随时取用。
具体地,测试工具根据测试人员确定的业务测试场景获取业务测试场景对应的业务测试模板数据。
步骤204,根据业务测试场景确定业务测试场景的场景预期结果。
其中,场景预期结果是与业务测试场景对应的期望运行结果。具体地,业务测试场景自身对应有业务逻辑,在对外部数据以业务逻辑运行处理后,会得到一个业务运行结果,例如,若外部数据为一段时间内的产品交易数据,将产品交易数据以业务逻辑运行处理后,得到的业务运行结果为总产品交易数据,则在对该业务场景进行业务逻辑测试时,即可预先将总产品交易数据确定为该业务测试场景的场景预期结果,以便后续快速生成以场景预期结果为导向的业务测试数据。
具体地,测试工具根据业务测试场景确定业务测试场景对应的场景预期结果。可以理解的,测试工具中包含有业务系统所承接的所有业务对应的业务测试场景,业务测试场景与场景预期结构一一对应。
步骤206,基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据。
具体地,测试工具根据业务测试模板数据确定当前测试的外部系统的标准数据结构,再基于确定的业务测试场景和场景预期结果,以及外部系统的标准数据结果生成业务测试数据。与传统测试数据生成方法不同的是,本方案在生成业务测试数据时引入了业务测试场景对应的场景预期结果,以预期结果为导向,可以有效避免生成的业务测试数据不符合预期结果而需要进行多次调整的情况发生。
步骤208,根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果。
具体地,测试工具将生成的业务测试数据作为输入数据输入至业务测试场景中,以业务测试场景对应的业务逻辑对业务测试数据进行处理,从而得到业务逻辑运行结果,将业务逻辑运行结果与预期结果进行比较,即可得到业务测试场景的业务逻辑测试结果,确定业务系统中的业务逻辑是否正常运行。
上述业务逻辑测试方法中,提前将业务测试场景与业务测试模板数据进行绑定,在进行业务逻辑测试时,获取业务测试场景对应的业务测试模板数据,根据业务测试场景以及业务测试场景的预期信息对业务测试模板数据进行处理生成业务测试数据,通过绑定模板可以降低测试人员在生成测试数据时的工作量,随后根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果,由于在生成业务测试数据时同时以预期结果为导向,因此,可以避免生成的业务测试数据不符合预期结果而需要进行多次调整的情况发生,从减少构建测试数据的工作量以及增加构建测试数据的预期准确性两个方面出发,有效提升了业务逻辑测试的测试效率,增强了业务系统运行的可靠性。
在一个实施例中,如图3所示,基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据,包括:
步骤302,基于业务测试场景对业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段。
其中,字段分类提取是用于对业务测试模板数据中的信息进行提取并分类的操作,由字段提取和字段分类两个操作组成。具体地,业务测试模板数据是包含了外部系统标准数据格式信息的数据,通过对业务测试模板数据进行字段提取,可以提取出该业务测试数据模板对应的模板字段集合,即用于生成业务测试数据的基础数据模板,模板字段集合中包含有多个不同填充类型的模板字段,每个模板字段都携带有基础数据信息,对模板字段进行填充即可得到符合外部系统数据标准的业务测试数据。例如,模板字段可以为金额、行数、总金额、组合名称等等。
其中,填充类型可以用于标识对模板字段的内容进行填充时应该采用的填充方式以及模板字段所属的填充种类,填充种类可以分为可直接填充类型和不可直接填充类型。若模板字段的填充方式属于可直接填充类型,则对于该模板字段只需要进行一次获取操作,即可得到该模板字段的填充内容。若模板字段的填充方式属于不可直接填充类型,则对于该模板字段需要进行至少两次获取操作,才可以得到该模板字段的填充内容。可以理解的,当模板字段的填充类型确定,该模板字段的填充方式,以及填充类型所属的填充种类,即是可直接填充类型还是不可直接填充类型均可同时确定。
具体地,在测试工具中,同一个外部系统可以有多个业务场景,即同一个业务测试模板数据可以被多个业务测试场景使用,而每个业务测试场景都有其对应的字段分类规则,测试工具在获取了业务测试模板数据后,还需要根据业务测试场景的字段分类规则对业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段。
步骤304,根据场景预期结果从各模板字段中确定关键预期字段。
其中,关键预期字段是可以承载场景预期结果对应的模板字段,关键预期字段可以是指一个单一字段,也可以是由两个或多个字段组合得到的组合字段。例如若模板字段包括金额、行数、组合名称,而场景预期结果是每行数据为一个值,则此时行数即可确定为关键预期字段,若场景预期结果为总金额是一个值,则此时关键预期字段为金额与行数的组合字段。
具体地,测试工具根据场景预期结果,从各个模板字段中确定出承载场景预期结果的关键预期字段。
步骤306,基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据。
具体地,根据各模板字段对应的填充类型,确定各模板字段的填充方法,基于填充方法获取各模板字段的字段填充数据。
步骤308,根据各字段填充数据生成业务测试场景的业务测试数据。
具体地,测试工作在得到了各模板字段的字段填充数据后,根据各字段填充数据生成符合外部系统数据标准格式的业务测试数据,用于对业务测试场景的业务逻辑进行测试。
本实施例中,通过对业务测试模板数据进行字段分类提取,确定各模板字段的填充类型,同时基于场景预期结果从各模板字段中确定关键预期字段,可以在生成业务测试数据时同时以预期结果为导向,避免生成的业务测试数据不符合预期结果而需要进行多次调整的情况发生,提高了业务逻辑测试的测试效率。
由于关键预期字段可以是单一字段,也可以是组合字段,因此,在一个实施例中,基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据,包括:
获取关键预期字段的填充类型,若关键预期字段对应的填充类型属于可直接填充类型,则基于各模板字段对应的填充类型得到各模板字段的字段填充数据。
具体地,测试工具获取关键预期字段的填充类型,若关键预期字段对应的填充类型属于可直接填充类型,则可以认为此关键预期字段为单一字段,与模板字段集合中的其他模板字段一样,只需要进行一次获取操作,即可得到关键预期字段的字段填充数据,因此,测试工具可直接基于各模板字段对应的填充类型得到各模板字段的字段填充数据。
在本实施例中,测试工具先确定关键预期字段的填充类型,若填充类型属于可直接填充类型,则直接基于各模板字段对应的填充类型得到各模板字段的字段填充数据,加快了后续生成业务测试数据的速度,提高了业务逻辑测试的测试效率。
进一步的,在一个实施例中,如图4所示,业务逻辑测试方法还包括以下步骤:
步骤402,若关键预期字段对应的填充类型属于不可直接填充类型,则从各模板字段中确定关键预期字段的相关字段以及非相关字段。
具体地,测试工具获取关键预期字段的填充类型,若关键预期字段对应的填充类型属于不可直接填充类型,则可以认为此关键预期字段为组合字段,是由至少两个模板字段组合处理得到的,组合的模板字段即为关键预期字段的相关字段。测试工具根据关键预期字段从各模板字段中确定关键预期字段的相关字段,同时将模板字段集合中除相关字段外的模板字段确定为非相关字段。
步骤404,根据相关字段对应的填充类型以及非相关字段对应的填充类型,分别得到相关字段的相关字段填充数据与非相关字段的非相关字段填充数据。
具体地,测试工具根据相关字段对应的填充类型得到相关字段的相关字段填充数据,根据非相关字段对应的填充类型得到非相关字段的非相关字段填充数据。
步骤406,对相关字段填充数据进行预期结果处理,得到关键预期字段的关键字段填充数据。
其中,预期结果处理是指对相关字段填充数据进行处理以得到场景预期结果的处理方式,例如,若场景预期结果为总金额是一个值,则此时关键预期字段的相关字段即为金额与行数,相关字段填充数据即行数填充数据与金额填充数据,测试工具根据行数填充数据与金额填充数据计算得到此业务场景下的总金额,即为关键预期字段的关键字段填充数据。
具体地,测试数据在得到相关字段填充数据后,通过对相关字段填充数据进行预期结果处理,即可得到关键预期字段的关键字段填充数据。
步骤408,基于相关字段填充数据、非相关字段填充数据以及关键字段填充数据,得到各模板字段的字段填充数据。
具体地,测试工具在得到相关字段填充数据、非相关字段填充数据以及关键字段填充数据后,可以认为整个模板字段集合中的字段填充数据已经全部获得。
在本实施例中,测试工具在确定关键预期字段是由多个字段组合形成时,先确定组合形成关键预期字段的相关字段,基于相关字段与非相关字段各自对应的填充类型,分别得到相关字段填充数据与非相关字段填充数据,对相关字段填充数据进行处理,得到关键字段填充数据,再基于三种填充数据得到整个模板字段集合的字段填充数据,为后续生成以预期结果为导向业务测试数据提供了数据基础。
填充类型是确定模板字段填充方法的关键信息,在一个实施例中,模板字段的填充类型包括界面输入,基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据,包括:
若模板字段对应的填充类型为界面输入,则基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,生成数据构造界面,从数据构造界面获取模板字段的字段填充数据。
其中,界面输入是指采用从界面获取填充数据的方式对模板字段进行填充的填充类型。
具体地,若模板字段的填充类型为界面输入,则说明此时字段模板的填充字段获取方式为直接从界面输入的信息中获取填充数据。测试工具基于测试场景,即包含关键预期字段的各模板字段以及各模板字段对应的填充类型,生成数据构造界面,测试人员可以基于数据构造界面输入该模板字段的填充数据,测试工具获取测试人员输入的填充数据,得到该模板字段的字段填充数据,为后续得到业务测试数据提供了数据基础。
模板字段的填充类型除了界面输入外,在一个实施例中,模板字段的填充类型包括直接构造,基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据,包括:
若模板字段对应的填充类型为直接构造,则根据测试场景获取预设构造函数,基于预设构造函数得到模板字段的字段填充数据。
其中,直接构造是指采用预设构造函数构造填充数据的方式对模板字段进行填充的填充类型。
具体地,若模板字段的填充类型为直接构造,则可以认为此模板字段所要填充的数据并不是测试过程中的关键数据,对测试结果影响不大,例如账号字段等,对此模板字段进行填充主要是为了保证生成的业务测试数据的结构完整性。因此,测试工具可以采用预设构造函数,直接构造出该模板字段的字段填充数据,为后续得到完整的业务测试数据提供了数据基础。
进一步的,在一个实施例中,模板字段的填充类型包括数据库获取,基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据,包括:
若模板字段对应的填充类型为数据库获取,则根据测试场景确定预设获取规则,基于预设获取规则从数据库中获取模板字段的字段填充数据。
其中,数据库获取是指采用预设获取规则从业务系统数据库中获取填充数据的方式,对模板字段进行填充的填充类型。预设获取规则与测试场景对应,规定了在该测试场景下,在数据库中获取数据的具体位置与形式。
具体地,若模板字段的填充类型为数据库获取,则可以认为此模板字段所要填充的数据是已经存储在数据库中的数据,可以直接从数据库中获取,例如组合名称等。测试工具根据测试场景确定预设获取规则,再基于预测获取规则,从数据库中直接获取该模板字段的字段填充数据,为后续得到完整的业务测试数据提供了数据基础。
在托管系统测试过程中,为了测试外部系统提供数据的相关功能,会有大量的测试数据构造的工作量,且数据字段含义复杂,与系统现有测试数据强耦合,测试预期结果与数据的金额字段的总额、界限等相关。在已有的测试方案中,测试人员主要是从正向人工构思出需要的测试数据,没有从测试预期结果的角度去构造数据,测试人员对外部数据功能要求高,后期还要根据预期结果对测试数据进行调整,基于此,在一个实施例中,如图5所示,提供了一种业务逻辑测试方法,以将该方法应用于托管系统中为例进行说明。
首先,测试工具确定本次进行测试的测试场景,导入测试所需的测试数据文件模板,根据测试场景确定测试场景的场景预期结果。基于测试场景对测试数据文件模板进行字段分类提取操作,得到测试数据文件模板的所有模板字段,模板字段包含有不同填充类型,包括界面输入、直接构造和数据库获取。同时根据场景预期结果从各模板字段中确定关键预期字段。
测试工具按照测试场景、各模板字段以及各模板字段对应的填充类型,生成数据构造界面,响应于测试人员基于数据构造界面触发的测试数据生成操作,基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据。
具体地,若模板字段对应的填充类型为界面输入,则根据预先编写好的逻辑编码,从数据构造界面上获取测试人员输入的填充数据,得到模板字段的字段填充数据。若模板字段对应的填充类型为直接构造,则根据测试场景获取预设构造函数,基于预设构造函数得到模板字段的字段填充数据。若模板字段对应的填充类型为数据库获取,则根据测试场景确定预设获取规则,基于预设获取规则,通过SQL从数据库中获取模板字段的字段填充数据。
最后,测试工具根据得到的所有字段填充数据生成托管系统的测试数据,并根据测试数据对测试场景的业务逻辑进行测试,得到测试场景的业务逻辑测试结果。
例如,若某测试场景需要使用某个模板测试在10000行数据下,某组合,具有最低金额为0,最高金额为1万特点的测试数据,预期的总金额为200000,这样测试的某项预期就为在该场景下的数据特点,该组合凭证金额为200000,界面输入行数10000,总金额200000,最低金额0,最高金额10000。其中,根据组合名称即可通过SQL从测试环境数据库已有数据中获取该组合的相关信息,并通过构造函数生成大于等于0,小于10000并小于剩下总金额的金额填入测试金额字段,最终生成满足测试预期的10000行数据文件,可直接测试查看结果是否符合该组合凭证为200000的预期。
本实施例中的业务逻辑测试方法,根据测试数据模板的数据特征与测试场景自动生成符合测试预期的测试数据的思路和应用,引入自动的模板与测试场景的关联,自动根据测试目的生成测试数据,提升了测试效率,降低了测试数据准备的门槛。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的业务逻辑测试方法的业务逻辑测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务逻辑测试装置实施例中的具体限定可以参见上文中对于业务逻辑测试方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种业务逻辑测试装置600,包括:模板数据获取模块601、预期信息确定模块602、测试数据生成模块603和测试模块604,其中:
模板数据获取模块601,用于获取业务测试场景对应的业务测试模板数据。
预期信息确定模块602,用于根据业务测试场景确定业务测试场景的场景预期结果。
测试数据生成模块603,用于基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据。
测试模块604,用于根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果。
上述业务逻辑测试装置,提前将业务测试场景与业务测试模板数据进行绑定,在进行业务逻辑测试时,获取业务测试场景对应的业务测试模板数据,根据业务测试场景以及业务测试场景的预期信息对业务测试模板数据进行处理生成业务测试数据,通过绑定模板可以降低测试人员在生成测试数据时的工作量,随后根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果,由于在生成业务测试数据时同时以预期结果为导向,因此,可以避免生成的业务测试数据不符合预期结果而需要进行多次调整的情况发生,从减少构建测试数据的工作量以及增加构建测试数据的预期准确性两个方面出发,有效提升了业务逻辑测试的测试效率,增强了业务系统运行的可靠性。
在一个实施例中,测试数据生成模块还用于:基于业务测试场景对业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段;根据场景预期结果从各模板字段中确定关键预期字段;基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据;根据各字段填充数据生成业务测试场景的业务测试数据。
在一个实施例中,测试数据生成模块还用于:获取关键预期字段的填充类型;若关键预期字段对应的填充类型属于可直接填充类型,则基于各模板字段对应的填充类型得到各模板字段的字段填充数据。
在一个实施例中,测试数据生成模块还用于:若关键预期字段对应的填充类型属于不可直接填充类型,则从各模板字段中确定关键预期字段的相关字段以及非相关字段;根据相关字段对应的填充类型以及非相关字段对应的填充类型,分别得到相关字段的相关字段填充数据与非相关字段的非相关字段填充数据;对相关字段填充数据进行预期结果处理,得到关键预期字段的关键字段填充数据;基于相关字段填充数据、非相关字段填充数据以及关键字段填充数据,得到各模板字段的字段填充数据。
在一个实施例中,填充类型包括界面输入;测试数据生成模块还用于:若模板字段对应的填充类型为界面输入,则基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,生成数据构造界面;从数据构造界面获取模板字段的字段填充数据。
在一个实施例中,填充类型包括直接构造;测试数据生成模块还用于:若模板字段对应的填充类型为直接构造,则根据测试场景获取预设构造函数;基于预设构造函数得到模板字段的字段填充数据。
在一个实施例中,填充类型包括数据库获取;测试数据生成模块还用于:若模板字段对应的填充类型为数据库获取,则根据测试场景确定预设获取规则;基于预设获取规则从数据库中获取模板字段的字段填充数据。
上述业务逻辑测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是集成了测试工具的服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务测试模板数据、业务测试场景、场景预期结果等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务逻辑测试方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取业务测试场景对应的业务测试模板数据;
根据业务测试场景确定业务测试场景的场景预期结果;
基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据;
根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于业务测试场景对业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段;
根据场景预期结果从各模板字段中确定关键预期字段;
基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据;
根据各字段填充数据生成业务测试场景的业务测试数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取关键预期字段的填充类型;
若关键预期字段对应的填充类型属于可直接填充类型,则基于各模板字段对应的填充类型得到各模板字段的字段填充数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若关键预期字段对应的填充类型属于不可直接填充类型,则从各模板字段中确定关键预期字段的相关字段以及非相关字段;
根据相关字段对应的填充类型以及非相关字段对应的填充类型,分别得到相关字段的相关字段填充数据与非相关字段的非相关字段填充数据;
对相关字段填充数据进行预期结果处理,得到关键预期字段的关键字段填充数据;
基于相关字段填充数据、非相关字段填充数据以及关键字段填充数据,得到各模板字段的字段填充数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若模板字段对应的填充类型为界面输入,则基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,生成数据构造界面;
从数据构造界面获取模板字段的字段填充数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若模板字段对应的填充类型为直接构造,则根据测试场景获取预设构造函数;
基于预设构造函数得到模板字段的字段填充数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若模板字段对应的填充类型为数据库获取,则根据测试场景确定预设获取规则;
基于预设获取规则从数据库中获取模板字段的字段填充数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取业务测试场景对应的业务测试模板数据;
根据业务测试场景确定业务测试场景的场景预期结果;
基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据;
根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于业务测试场景对业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段;
根据场景预期结果从各模板字段中确定关键预期字段;
基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据;
根据各字段填充数据生成业务测试场景的业务测试数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取关键预期字段的填充类型;
若关键预期字段对应的填充类型属于可直接填充类型,则基于各模板字段对应的填充类型得到各模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若关键预期字段对应的填充类型属于不可直接填充类型,则从各模板字段中确定关键预期字段的相关字段以及非相关字段;
根据相关字段对应的填充类型以及非相关字段对应的填充类型,分别得到相关字段的相关字段填充数据与非相关字段的非相关字段填充数据;
对相关字段填充数据进行预期结果处理,得到关键预期字段的关键字段填充数据;
基于相关字段填充数据、非相关字段填充数据以及关键字段填充数据,得到各模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若模板字段对应的填充类型为界面输入,则基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,生成数据构造界面;
从数据构造界面获取模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若模板字段对应的填充类型为直接构造,则根据测试场景获取预设构造函数;
基于预设构造函数得到模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若模板字段对应的填充类型为数据库获取,则根据测试场景确定预设获取规则;
基于预设获取规则从数据库中获取模板字段的字段填充数据。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取业务测试场景对应的业务测试模板数据;
根据业务测试场景确定业务测试场景的场景预期结果;
基于业务测试场景、场景预期结果与业务测试模板数据生成业务测试场景的业务测试数据;
根据业务测试数据对业务测试场景的业务逻辑进行测试,得到业务测试场景的业务逻辑测试结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于业务测试场景对业务测试模板数据进行字段分类提取,得到不同填充类型的模板字段;
根据场景预期结果从各模板字段中确定关键预期字段;
基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,得到各模板字段的字段填充数据;
根据各字段填充数据生成业务测试场景的业务测试数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取关键预期字段的填充类型;
若关键预期字段对应的填充类型属于可直接填充类型,则基于各模板字段对应的填充类型得到各模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若关键预期字段对应的填充类型属于不可直接填充类型,则从各模板字段中确定关键预期字段的相关字段以及非相关字段;
根据相关字段对应的填充类型以及非相关字段对应的填充类型,分别得到相关字段的相关字段填充数据与非相关字段的非相关字段填充数据;
对相关字段填充数据进行预期结果处理,得到关键预期字段的关键字段填充数据;
基于相关字段填充数据、非相关字段填充数据以及关键字段填充数据,得到各模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若模板字段对应的填充类型为界面输入,则基于包含关键预期字段的各模板字段以及各模板字段对应的填充类型,生成数据构造界面;
从数据构造界面获取模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若模板字段对应的填充类型为直接构造,则根据测试场景获取预设构造函数;
基于预设构造函数得到模板字段的字段填充数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若模板字段对应的填充类型为数据库获取,则根据测试场景确定预设获取规则;
基于预设获取规则从数据库中获取模板字段的字段填充数据。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
- 测试方法、装置、计算机可读存储介质和计算机设备
- 软件测试方法、装置、计算机设备和可读存储介质
- 分组测试方法、装置、计算机设备及存储介质
- 接口测试方法、装置、计算机设备及存储介质
- Monkey测试方法、装置、电子设备及计算机可读存储介质
- 业务逻辑的异常处理方法、装置、计算机设备及存储介质
- 业务逻辑调试方法、装置、设备及计算机可读存储介质