自动化测试方法、装置、存储介质及电子设备与流程

文档序号:28594915发布日期:2022-01-22 10:08阅读:91来源:国知局
自动化测试方法、装置、存储介质及电子设备与流程

1.本说明书涉及一种自动化测试方法、装置、存储介质及电子设备,可用于金融领域的应用程序测试,也可用于除金融领域之外的任意领域的应用程序测试,本说明书对自动化测试方法、装置、存储介质及电子设备的应用领域不做限定。


背景技术:

2.对于大型应用系统,往往需要尽可能多的覆盖到所有程序进行自动化测试,包括冒烟测试和常规测试,而周期性地完成冒烟测试,是守护应用版本交付质量的关键。对于冒烟测试,作为简单的覆盖性测试,面对程序的入参和出参各种各样、参差不齐,很难使用统一模板自动化生成测试代码进行自动化运行,而针对每一个程序编写对应的一个测试案例,其测试案例的编写量是比较大的。因此,目前亟需一种更加简单高效的自动化测试方法。


技术实现要素:

3.本说明书实施例的目的在于提供一种自动化测试方法、装置、存储介质及电子设备,可以提高程序测试的简便性以及效率。
4.本说明书提供一种自动化测试方法、装置、存储介质及电子设备是包括如下方式实现的:
5.一种自动化测试方法,所述方法应用于自动化测试平台,所述自动化测试平台中集成有测试案例组件;所述测试案例组件中至少配置有指定批量程序测试的程序调度参数数据以及程序调度代码;其中,所述程序调度参数数据基于作业调度表中所配置的针对所述指定批量程序测试的程序调度方式所生成;所述方法包括:接收针对所述指定批量程序测试的测试指令,所述测试指令包括测试案例标识;其中,所述测试案例标识是指对测试案例组件进行标识的信息;向所述测试案例标识对应的测试案例组件发送触发指令;所述测试案例组件响应于所述触发指令,基于预先配置的程序调度参数数据以及程序调度代码,调取所述指定批量程序测试所涉及的被测程序执行测试。
6.另一方面,本说明书实施例还提供一种自动化测试装置,所述装置应用于自动化测试平台,所述自动化测试平台中集成有测试案例组件;所述测试案例组件中至少配置有指定批量程序测试的程序调度参数数据以及程序调度代码;其中,所述程序调度参数数据基于作业调度表中所配置的针对所述指定批量程序测试的程序调度方式所生成;所述装置包括:指令接收模块,用于接收针对所述指定批量程序测试的测试指令,所述测试指令包括测试案例标识;其中,所述测试案例标识是指对测试案例组件进行标识的信息;测试触发模块,用于向所述测试案例标识对应的测试案例组件发送触发指令;所述测试案例组件用于响应于所述触发指令,基于预先配置的程序调度参数数据以及程序调度代码,调取所述指定批量程序测试所涉及的被测程序执行测试。
7.另一方面,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机
指令,所述指令被执行时实现上述任意一个或者多个实施例所述方法的步骤。
8.另一方面,本说明书实施例还提供一种电子设备,所述电子设备包括至少一个处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现上述任意一个或者多个实施例所述方法的步骤。
9.本说明书一个或多个实施例提供的自动化测试方法、装置、存储介质及电子设备,巧妙地运用了测试案例框架以及作业调度系统,将运行单个被测程序的测试工具,改成基于程序调度的一套批量程序测试装置。通过一段程序调度代码即可实现整个批量程序的有序测试,且测试信息配置也更加简单方便,无需再针对每个被测程序单独执行测试信息配置以及测试运行,实现各被测程序所涉及的测试信息的统一配置、以及各被测程序的统一调度测试,大幅提高测试信息配置的简便性以及测试效率。
附图说明
10.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
11.图1为本说明书提供的测试案例组件的实施环节示意图;
12.图2为本说明书提供的测试案例组件的运行程序部分的实施环节示意图;
13.图3为本说明书提供的自动化测试平台的实施环节示意图;
14.图4为本说明书提供的自动化测试方法的流程示意图;
15.图5为本说明书提供的自动化测试装置的模块结构示意图;
16.图6为本说明书提供的电子设备的模块结构示意图。
具体实施方式
17.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
18.对于大型应用系统,往往需要尽可能多的覆盖到所有程序进行自动化测试,包括冒烟测试和常规测试,而周期性地完成冒烟测试,是守护应用版本交付质量的关键。对于冒烟测试,作为简单的覆盖性测试,面对程序的入参和出参各种各样、参差不齐,很难使用统一模板自动化生成测试代码进行自动化运行,而针对每一个程序编写对应的一个测试案例,其测试案例的编写量是比较大的。
19.例如,目前通常借助测试工具对被测程序进行测试。测试人员需先在测试工具中配置用于存储单个被测程序的运行结果的运行结果数据表、以及用于存储该被测程序的预期运行结果的预期结果数据表;然后,调取该被测程序的程序功能,以对该被测程序执行测试,得到该被测程序的运行结果;之后,再将被测程序的运行结果与预期运行结果比对,得出该被测程序的测试结果。由此可见,基于目前的测试方式,需要针对每个被测程序单独执
行数据表配置、程序调取以及结果比对,即需要针对每个被测程度单独配置一套测试案例,使得批量测试的测试案例编写较为复杂繁琐,效率较低。
20.目前在oracle系统中或者其他类似数据库系统中,通过系统参数表来存放所有被测程序的名称、输入/输出参数名及其参数类型,但是由于各被测程序所对应的参数类型参差不齐,很难对每一种参数类型(可能成百上千种参数)预设指定测试值。且批量测试所涉及的多个被测程序之间还可能存在调用关系,部分被测程序的测试值还需要在其他被测程序执行完成后,才能完成得到。使得,基于系统参数表进行测试值的配置较难实现。且应用系统内的程序运行参数表所存储的数据也较为庞大,测试工具在针对每个被测程序执行测试的过程中,需要基于被测程序标识遍历应用系统内的程序运行参数表,提取被测程序的程序输入参数、程序输出参数、以及相应的测试值等,完成运行结果数据表、预期结果数据表的生成,以及被测程序运行所需输入参数值的传入,使得测试效率也受影响。
21.相应的,本说明书实施例提供一种自动化测试方法,所述方法可以结合作业调度系统的调度策略,利用程序调度的方式执行批量程序测试。利用本说明书实施例提供的方式,可以实现各被测程序所涉及的测试信息的统一配置、以及各被测程序的统一调度测试,大幅提高测试信息配置的简便性以及测试效率。
22.本说明书的一个场景示例中,所述自动化测试方法可以应用于预先构建的自动化测试平台中。优选的,所述自动化测试平台可以基于jeckins持续集成框架搭建。当然,也可以基于其他持续集成框架搭建。所述自动化测试平台中可以集成有测试案例组件。所述测试案例组件可以用于基于程序调度的方式执行批量测试。
23.如图1所示,所述测试案例组件可以包括备份数据、导入数据、执行测试、执行断言、恢复数据等部分。所述测试案例组件可以基于测试框架构建。如可以基于utplsql测试框架构建所述测试案例组件。当然,也可以采用其他类型的测试框架构建测试案例组件。
24.所述测试案例组件的各部分可以采用下述配置。
25.1、备份数据
26.可以在测试案例组件中配置测试日志表。所述测试日志表可以用于存储被测程序的测试结果。所述测试日志表如可以分为程序测试日志表、作业测试日志表。程序测试日志表可以包括被测程序的程序标识(如程序名或者被测程序的存储过程名)、运行日期、运行结果、对应的程序负责人等字段。作业测试日志表可以包括作业标识、运行日期、运行结果、对应的作业负责人等字段。其中,作业可以是指批处理系统中用户需要计算机完成的某项任务,是要求计算机所做工作的集合。一个作业通常由至少一个被测程序来完成。部分情况下,可以通过比对作业整体完成情况,来确定作业中各被测程序的运行是否正常,在该情况下,可以通过作业测试日志表来记录作业中各被测程序的运行结果、并通过作业预期日志表来存储该作业对其所涉及的各被测程序的运行结果的预期要求。
27.2、导入数据
28.可以在测试案例组件中配置或导入预期日志表。相应的,预期日志表可以分为程序预期日志表、作业预期日志表。程序预期日志表可以包括被测程序的程序标识(如程序名或者被测程序的存储过程名)、运行日期、运行结果为成功的值、对应的程序负责人等字段。作业预期日志表可以包括作业标识、运行日期、运行结果为正确的被测程序个数/总被测程序个数、对应的作业负责人等字段。
29.3、执行测试
30.可以预先在测试案例组件中配置程序调度代码。所述程序调度代码可以为预先配置的执行被测程序调度的代码。测试案例组件可以针对指定批量程序测试,动态生成传送给程序调度代码的传入参数数据,得到针对该指定批量程序测试的测试调度程序,进而动态调取指定批量程序测试的各被测程序执行测试。
31.本场景示例中,测试案例组件可以基于指定批量程序测试的程序调度参数数据,动态生成传送给程序调度代码的传入参数数据,进而调取指定批量程序测试的各被测程序执行测试。其中,所述程序调度参数数据可以是指对指定批量程序测试所涉及的被测程序进行动态调度的参数数据。所述程序调度参数数据如可以包括调取程序测试的时间、测试方式等等。相应的,所述传入参数数据可以包括相应测试时间下被测程序的程序标识、程序输入值、测试访问的数据源信息等等。
32.优选的,所述程序调度参数数据可以结合作业调度系统中的作业调度表来生成。所述作业调度表中可以配置有所述指定批量程序测试所涉及的各被测程序的程序调度方式。对于批量系统,其作业调度系统覆盖了大部分的程序的直接调用和嵌套调用,且有统一的调度配置方式,因此,结合作业调度系统中的作业调度表来统一动态生成批量程序测试的程序调度参数数据,可以使得程序调度更加准确有序。
33.所述程序调度方式如可以包括基于时间调度、基于并发调度等方式。优选的,可以先将指定批量程序测试所涉及的被测程序进行归类,以按程序类型统一进行作业调度表中调度方式的配置。程序类型如可以包括sql程序、shell程序等等。不同类型的程序所涉及的调度方式可能存在较大的差异性,通过基于程序类型配置调度方式,可以使得被测程序调度更加准确。当然,所述调度方式根据测试需求还可以包括其他类型。
34.基于时间调度的方式,可以将各被测程序分配至不同的测试时间执行测试,相应的,各被测程序按照相应的测试时间有序执行测试。如可以预先在测试案例组件中配置测试分配规则,基于该测试分配规则动态生成指定批量程序测试所涉及的各被测程序的测试时间。当然,如被测程序的数量较少,一天内可以运行完毕,也可以由测试人员直接在测试案例组件中配置各被测程序的测试时间。测试时,测试案例组件则可以在任一测试时间,调取该测试时间下的被测程序执行测试。
35.所述测试分配规则如可以为基于测试周期分配各测试程序的测试时间。如可以预先根据指定批量程序测试所针对的被测程序数量配置测试周期。比如,被测程序的数量较少,可以将一个小时作为测试周期。如果被测程序的数量较多,则可以将一天或者一个周作为一个测试周期。在配置测试周期后,还可以分配各测试周期内所运行的被测程序。如可以将各被测程序直接均衡分配至各测试周期中。或者,也可以进一步结合被测程序间的调用关系或作业间的依赖关系将各被测程序分配至各测试周期中。通过上述方式,各被测程序将被均衡且有序地分配到任意一个测试周期中执行测试。当然,所述测试分配规则也可以采用其他方式。
36.基于并发调度的方式,可以基于并发的方式对各被测程序执行测试。如可以由测试人员在测试案例组件中配置各被测程序的并发参数数据为地区d、e,再基于某地区d、e的业务数据对各被测程序执行并发测试。测试时,测试案例组件则可以在任一测试周期,调取该测试周期下的被测程序,并基于相应被测程序所对应的并发参数数据(如地区d、e),对被
测程序执行并发测试。所述并发参数数据还可以为不同业务类型等。当然,也可以在测试案例组件中预先配置测试并发规则,基于该测试并发规则动态生成指定批量程序测试所涉及的各被测程序的并发参数数据。
37.本场景示例中,还可以进一步梳理出各被测程序之间的调用关系。例如,被测程序a的运行结果是另一被测程序b运行所需的数据,即被测程序b运行时需要调用被测程序a的运行结果,则被测程序a与被测程序b之间存在调用关系。可以对各被测程序之间的调用关系进行梳理,提取出所述指定批量程序测试中的根被测程序以及叶子被测程序。所述根被测程序可以是指未被其他被测程序调用的被测程序,所述叶子被测程序可以是指根被测程序运行时所调用的被测程序。
38.例如,若梳理后,仅被测程序a与被测程序b之间存在调用关系,则被测程序b为根被测程序,被测程序a为根被测程序b的叶子被测程序。若梳理后,被测程序a、b、c之间存在调用关系,且被测程序a、b的运行结果是另一被测程序c运行所需的数据,则被测程序c为根被测程序,被测程序a、b为叶子被测程序。依次类推,可以对各被测程序之间的调用关系依次进行梳理,找到根被测程序以及根被测程序所涉及的叶子被测程序。对于与其他被测程序不存在调用关系的被测程序,可以将该被测程序本身作为根被测程序。
39.相应的,在对指定批量程序测试所针对的各被测程序之间的调用关系进行梳理后,可以得到一系列根被测程序、根被测程序所对应的叶子被测程序。可以将提取的根测试程序以及根测试程序所对应的叶子被测程序进行存储。例如,可以将根被测程序作为根节点,将叶子被测程序作为叶子节点,利用树结构来存储各根被测程序以及各根被测程序所对应的叶子被测程序。或者,也可以将根被测程序作为第一类型节点,将叶子被测程序作为第二类型节点,并在第一类型节点与第二类型节点之间建立连接,连接关系备注为调用关系,利用知识图谱结构来存储各根被测程序以及各根被测程序所对应的叶子被测程序。当然,也可以采用其他方式存储梳理出的上述信息。相应的,在程序调度参数数据生成的过程中,可以仅生成所述根被测程序对应的程序调度参数数据,降低程序调度参数数据生成的复杂性。
40.相应的,在所述程序调度方式包括基于时间调度的情况下,测试案例组件可以预先配置所述指定批量程序测试所对应的多个测试周期,测试周期的配置方式可以参考上述实施方式。然后,可以至少根据所述根被测程序以及根被测程序所述涉及的叶子被测程序的数量,分配各根被测程序所对应的测试周期,将各被测程序尽量均衡地分配到各测试周期中进行测试。并将所述各根被测程序所对应的测试周期作为所述指定批量程序测试的程序调度参数数据。
41.以及,在所述调度方式包括基于并发调度的情况下,还可以在测试案例组件中配置各根被测程序所对应的并发参数数据,并将配置的各根被测程序所对应的并发参数数据也作为所述指定批量程序测试的程序调度参数数据。
42.测试时,针对任一指定的测试周期,测试案例组件可以抽取指定的测试周期下的根被测程序。因抽取的根被测程序运行过程中可以自行调用其所需调用的叶子被测程序,案例测试组件可以仅将抽取的根被测程序的程序标识,作为传入参数数据,传输给预先配置的程序调度代码,即可有序地调取所述抽取的根被测程序以及相应根被测程序运行所调用的叶子被测程序,在所述指定的测试周期下执行测试。从而利用本实施例的方案,仅需传
送根被测程序的程序标识,即可有序地完成一些列被测程序的测试,进一步提高测试的简便性。
43.或者,案例测试组件还可以进一步将根被测程序的并发参数数据作为所述程序调度代码的程序调度参数数据,相应的,可以在所述指定的测试周期下调取根被测程序以及相应根被测程序对应的叶子被测程序执行并发测试。
44.利用上述实施方式,测试案例组件以根被测程序为基准,动态生成或配置程序调度参数数据,可以使得程序调度参数数据的生成或者配置更加简单方便。同时,基于上述方式执行测试,还可以使得批量程序测试更加准确有序。
45.另一些实施方式中,还可以在作业调度表中,配置根被测程序的程序输入参数、程序输出参数以及测试值,叶子被测程序的测试值则可以在程序测试过程中动态生成。所述测试值可以包括程序输入参数对应的程序输入值、以及程序输出参数所对应的程序预期输出值。例如,可以基于根被测程序进行程序输入参数、程序输出参数的配置,以及可以找到根被测程序所涉及的程序输入/输出参数类型,分类型进行测试值的配置,提高测试值配置的简便性。相对于在应用系统中配置程序输入/输出参数以及测试值,本实施方式仅需在作业调度表中配置根被测程序配置程序输入/输出参数以及测试值,可以进一步提高测试参数以及测试值配置的简便性。
46.相应的,如图2所示,所述执行测试部分至少可以包括预处理、测试调度以及日志生成部分。
47.3.1、预处理
48.可以先将作业调度配置表里的程序进行归类,按程序类型统一进行作业调度表中程序调度方式的配置。然后,可以根据作业调度表中配置的程序调度方式、被测程序之间的调用关系等,动态生成指定批量程序测试的程序调度参数数据以及程序输入参数、程序输出参数以及测试值等。具体实施方式,可以参考上述内容描述,这里不做赘述。
49.3.2、测试调度
50.可以基于程序调度参数数据提取待调取的被测程序的标识信息以及程序输入值等,作为程序调度代码的传入参数数据,依次调取被测程序执行测试。具体实施方式,可以参考上述内容描述,这里不做赘述。
51.3.3、日志生成
52.可以对被测程序运行的结果逐个统计(对应程序测试日志表的统计数据为:程序名或者被测程序的存储过程名、运行日期、运行结果、对应的程序负责人)和逐个作业统计(对应作业测试日志表的结构为:作业标识、运行日期、运行结果为正确值个数/总程序个数、对应的作业负责人)写入程序测试日志表或作业测试日志表。
53.4、执行断言
54.可以判断上述程序测试日志表/作业测试日志表与程序预期日志表/作业预期日志表之间的差异。如判断某被测程序的运行结果与相应程序预期输出值(运行结果为成功的值)是否满足预设要求,如果满足,则被测程序运行成功。或者,判断某作业标识下的运行结果为正确值个数/总程序个数与相应预期数据(运行结果为正确值个数/总程序个数)是否一致,如果一致,则该作业标识下的被测程序运行成功。通过利用日志表进行被测程序的统一记录以及比对的方式,可以使得测试断言更加简单高效。
55.5、恢复数据
56.测试完成后,还可以对日志表中的数据进行清理,恢复日志表的原始状态,执行后续的测试。
57.测试案例组件配置完成后,可以集成至jeckin测试框架中,得到自动化测试平台。相应的,如图3所示,所述自动化测试平台可以包括代码扫描、案例运行、断言捕获、报告展示等部分。
58.a、代码扫描
59.上述测试案例组件配置完成后,可以上传到jeckin服务器上的自定义目录路径下。自动化测试平台在接收到测试请求后,可以触发代码扫描,获取相应路径下的测试案例组件。如可以根据定时任务触发代码扫描功能,也可以手动触发代码扫描功能。
60.b、案例运行
61.在获取到测试案例组件后,平台可以运行测试案例组件。可以根据定时任务自动运行测试案例组件。当然,也可以手动触发运行测试案例组件。
62.c、断言捕获
63.平台还可以捕获测试案例组件的断言执行结果,并进行归类统计,形成执行结果统计报告及其详情链接。
64.d、报告展示
65.平台还可以根据断言执行结果,统计测试案例组件运行的情况,出示相应的报告及其详情链接,并且通过配置的对应案例程序的测试负责人员的邮箱,可以将相应的错误报告情况第一时间通知发送给事先配置的开发测试人员。
66.上述场景示例提供的自动化测试方法,巧妙地运用了测试案例框架以及作业调度系统,将运行单个被测程序的测试工具,改成基于程序调度的一套批量程序测试装置。通过一段程序调度代码即可实现整个批量程序的有序调度测试,且测试信息配置也更加简单方便,无需再针对每个被测程序单独执行测试信息配置以及测试运行,实现各被测程序所涉及的测试信息的统一配置、以及各被测程序的统一调度测试,大幅提高测试信息配置的简便性以及测试效率。同时,通过结合被测程序间的调用关系,有效梳理出根被测程序以及叶子被测程序,进而可以仅生成根被测程序的程序调度参数数据,即可实现各被测程序的准确有序测试,大幅提高程序调度参数数据生成的简便性以及准确性。且,通过作业调度参数表还可以基于根被测程序统一配置输入/输出参数以及对应的测试值,大大减少了输入/输出参数的准备工作。
67.如图4所示,基于上述场景示例,本说明书实施例还提供一种自动测试方法,应用于所述自动化测试平台,所述自动化测试平台中集成有测试案例组件;所述测试案例组件中至少配置有指定批量程序测试的程序调度参数数据以及程序调度代码;其中,所述程序调度参数数据基于作业调度表中所配置的针对所述指定批量程序测试的程序调度方式所生成;所述方法可以包括如下步骤:
68.s40:接收针对所述指定批量程序测试的测试指令,所述测试指令包括测试案例标识;其中,所述测试案例标识是指对测试案例组件进行标识的信息;
69.所述测试案例组件的信息配置方式可以参考上述场景示例,这里不做赘述。测试案例组件配置完成后,可以存储在测试平台的指定路径下。所述测试指令可以是由测试人
员自行触发产生的,也可以是基于定时机制触发产生的。所述测试指令至少可以包括测试案例标识。其中,所述测试案例标识是指对测试案例组件进行标识的信息。测试平台在接收到测试指令后,可以触发所述测试案例标识对应的测试案例组件。
70.s42:向所述测试案例标识对应的测试案例组件发送触发指令。
71.测试平台如可以扫描存储在自定义路径下的测试案例组件,并基于预先配置的触发机制,触发所述测试案例组件运行。所述触发机制可以为基于定时机制自动触发,也可以为测试人员手动触发。
72.s44:所述测试案例组件响应于所述触发指令,基于预先配置的程序调度参数数据以及程序调度代码,调取所述指定批量程序测试所涉及的被测程序执行测试。
73.测试案例组件可以响应于所述触发指令,基于预先配置的程序调度参数数据以及程序调度代码,调取所述指定批量程序测试所涉及的被测程序执行测试。测试案例组件调取程序测试的实施方式可以参考上述场景示例,这里不做赘述。
74.通过上述测试方式,可以使得原本成千上万个程序对应的成千上万个测试过程,通过上述程序调度的方式以及结合测试案例框架编写的一个统一测试案例组件准确有序地实现,大幅提高测试的简便性,降低人工投入的成本,提高测试效率。
75.另一些实施例中,所述程序调度参数数据可以基于所述指定批量程序测试所涉及的根被测程序生成:其中,所述根被测程序是指从所述指定批量程序测试所涉及的各被测程序中提取的未被其他被测程序调用的被测程序。基于被测程序间调用关系梳理出各被测程序中的根被测程序,基于根被测程序生成程序调度参数数据,可以使得程序调度参数数据的生成更加准确高效。
76.另一些实施例中,在所述程序调度方式包括基于时间调度的情况下,所述程序调度参数数据可以采用下述方式生成:至少根据所述根被测程序以及根被测程序所述涉及的叶子被测程序的数量,分配相应根被测程序所对应的测试周期;其中,所述叶子被测程序是指根被测程序运行时所调用的被测程序;将所述各根被测程序所对应的测试周期作为所述指定批量程序测试的程序调度参数数据。
77.另一些实施例中,平台还可以抽取指定的测试周期下的根被测程序;将抽取的所述根被测程序的程序标识作为所述程序调度代码的传入参数数据,在所述指定的测试周期下对抽取的所述根被测程序以及相应根被测程序运行时所调用的叶子被测程序执行程序测试。
78.另一些实施例中,在所述调度方式包括基于并发调度的情况下,所述程序调度参数数据可以采用下述方式生成:配置各根被测程序所对应的并发参数数据,并将配置的各根被测程序所对应的并发参数数据作为所述指定批量程序测试的程序调度参数数据。
79.另一些实施例中,所述测试案例组件中还配置有用于存储批量程序测试结果的测试日志表、以及用于存储批量程序测试预期结果的预期日志表;所述方法还包括:将调取的被测程序的运行结果存储至测试日志表中;比对所述测试日志表中运行结果与所述预期日志表中的相应预期结果,得到被测程序的测试结果。通过日志表的方式存储批量程序测试的运行结果以及预期结果,再基于日志表执行结果比对,可以实现批量程序测试的测试断言的统一执行,进一步降低批量程序测试整体流程的复杂度。
80.另一些实施例中,所述作业调度表中的程序调度方式至少基于所述指定批量程序
测试所涉及的被测程序的程序类型配置,使得程序调度方式配置更加符合测试应用场景,提高测试准确性。
81.另一些实施例中,所述自动化测试平台可以基于jeckins测试框架构建。通过jeckins平台实现测试装置的部署,可以实现测试运行的全自动化,且能生成测试报告,并可以按程序负责人或作业负责人分发测试报告给相关开发测试人员,达到测试人员和开发人员每日定时查收测试案例报告、第一时间知晓代码版本迭代修改后对整体应用程序影响的效果。
82.另一些实施例中,所述测试案例组件可以基于utplsql测试框架构建。utplsql是一个oracle pl/sql和sql单元测试框,支持程序包(package)、函数(function)、过程(procedure)等多种类型的批量操作测试。基于utplsql测试框架构建测试案例组件,可以使得测试案例组件的构建更加简单方便。
83.当然,所属领域技术人员在本说明书实施例的技术精髓启示下,还可能有其它变更实施方式,但只要其实现的功能和效果相同或相似,均应涵盖于本说明书保护范围内。
84.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
85.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
86.如图5所示,基于上述自动化测试方法,本说明书实施例还提供一种自动化测试装置,所述装置应用于自动化测试平台,所述自动化测试平台中集成有测试案例组件;所述测试案例组件中至少配置有指定批量程序测试的程序调度参数数据以及程序调度代码;其中,所述程序调度参数数据基于作业调度表中所配置的针对所述指定批量程序测试的程序调度方式所生成;所述装置包括:指令接收模块50,用于接收针对所述指定批量程序测试的测试指令,所述测试指令包括测试案例标识;其中,所述测试案例标识是指对测试案例组件进行标识的信息;测试触发模块52,用于向所述测试案例标识对应的测试案例组件发送触发指令;所述测试案例组件用于响应于所述触发指令,基于预先配置的程序调度参数数据以及程序调度代码,调取所述指定批量程序测试所涉及的被测程序执行测试。
87.需要说明的,上述所述的装置根据方法实施例以及场景示例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
88.如图6所示,基于上述自动化测试方法,本说明书还提供一种电子设备,所述电子设备包括至少一个处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现上述任意一个或者多个实施例所述方法的步骤。所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器包括但不限于随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、缓
存(cache)、硬盘(hard disk drive,hdd)或者存储卡(memory card)。所述电子设备如可以为上述实施例所述方法的服务器等。当然,所述电子设备还可以包括输入设备、传输模块等模块结构。在本实施方式中,该电子设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
89.以及,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意一个或者多个实施例所述方法的步骤。所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
90.需要说明的是,本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
91.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
92.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1