本发明涉及自动化测试,特别是涉及一种任务测试方法、装置、系统、设备和介质。
背景技术:
1、自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。目前测试技术中,比较常用的是实用testng(testing next generation,下一代测试技术)做集成测试框架,简单的集成到任务集成系统(jenkins)中,通过jenkins触发任务,进行测试并记录自动化测试结果。
2、该方案简单可靠,而且成本低,可以快速落地实现。但是也存在一些问题,测试报告需要最后统一输出,无法实时展示。如果集成测试用例很多,只能等到最后一个测试用例执行完成才能分析测试结果,而不能进行实时分析,导致问题定位效率偏低。整个测试过程中,如果因为中间某个测试用例阻塞会导致一直无法结束,或者其他原因导致后续测试用例全部跳过,那么最后得出的测试报告是不完整的,下次执行任务需要重头跑所有测试用例,而无法从阻塞的地方继续执行,没有断点续跑能力,导致自动化测试的鲁棒性较差。
3、可见,如何提升自动化测试的效率和鲁棒性,是本领域技术人员需要解决的问题。
技术实现思路
1、本发明实施例的目的是提供一种任务测试方法、装置、系统、设备和计算机可读存储介质,可以解决自动化测试效率和鲁棒性差的问题。
2、为解决上述技术问题,本发明实施例提供一种任务测试方法,包括:
3、在获取到平台设备下发的测试命令的情况下,根据所述测试命令携带的参数信息以及当前测试任务所对应的各测试用例的执行状态,确定出所需执行的目标测试用例;其中,所述参数信息用于表征是否具有断点续跑需求;
4、执行各所述目标测试用例,并存储各所述目标测试用例的执行记录;
5、在获取到所述平台设备下发的报告自动生成命令的情况下,根据所述当前测试任务的任务状态以及所述执行记录,生成测试报告,以便于所述平台设备展示所述测试报告。
6、一方面,所述根据所述测试命令携带的参数信息以及当前测试任务所对应的各测试用例的执行状态,确定出所需执行的目标测试用例包括:
7、判断所述测试命令是否携带了断点续跑参数;
8、在所述测试命令携带了断点续跑参数的情况下,从设定的存储空间中读取上一次任务的执行记录;其中,所述上一次任务是与所述当前测试任务具有相同任务标识并且时间最接近的任务;
9、依据所述执行记录判断所述测试命令所指向的测试用例在上一次任务中是否被执行;
10、在所述测试命令所指向的测试用例在上一次任务中未被执行或者所述测试命令未携带断点续跑参数的情况下,将所述测试命令所指向的测试用例作为所需执行的目标测试用例。
11、一方面,所述将所述测试命令所指向的测试用例作为所需执行的目标测试用例包括:
12、根据设定的任务标识和测试标识的对应关系以及所述测试命令携带的目标任务标识,确定所述测试命令匹配的目标测试标识;
13、从预先设定的所有测试用例中选取与所述目标测试标识匹配的目标测试用例。
14、一方面,所述将所述测试命令所指向的测试用例作为所需执行的目标测试用例包括:
15、根据设定的任务标识和测试标识的对应关系以及所述测试命令携带的目标任务标识,确定所述测试命令匹配的目标测试标识;
16、从用例库中下载所述目标测试标识匹配的目标测试用例。
17、一方面,所述根据所述当前测试任务的任务状态以及所述执行记录,生成测试报告包括:
18、判断所述当前测试任务的任务状态是否为运行状态;
19、在所述当前测试任务的任务状态为运行状态的情况下,按照周期时间从设定的存储空间中读取所述当前测试任务对应的所有执行记录;
20、从所述当前测试任务对应的所有执行记录中统计报告所需的各类信息,以生成测试报告;
21、在所述当前测试任务的任务状态不为运行状态的情况下,结束测试报告的生成。
22、一方面,所述从所述当前测试任务对应的所有执行记录中统计报告所需的各类信息,以生成测试报告包括:
23、基于所述当前测试任务对应的所有执行记录,统计出测试用例总数、测试用例的执行状态分布以及每个测试用例的执行信息;其中,所述执行状态分布包括执行成功的测试用例个数、执行失败的测试用例个数以及未执行的测试用例个数。
24、一方面,所述存储各所述目标测试用例的执行记录包括:
25、记录各所述目标测试用例各自对应的执行记录;其中,所述执行记录包括各所述目标测试用例对应的目标任务标识、目标用例标识、执行状态和执行结果;其中,所述执行状态包括未执行、执行失败和执行成功;所述执行状态为执行失败的情况下,执行结果包括执行失败的原因;
26、根据任务标识、测试用例所在的文件名以及用例标识设置的三级存储结构,将各所述执行记录存储至设定的存储空间;
27、相应的,所述从设定的存储空间中读取所述当前测试任务对应的所有执行记录包括:
28、判断所述设定的存储空间是否存在与所述当前测试任务携带的目标任务标识匹配的任务标识;
29、在所述设定的存储空间不存在与所述当前测试任务携带的目标任务标识匹配的任务标识的情况下,向所述平台设备反馈测试任务记录异常的提示信息;
30、在所述设定的存储空间存在与所述当前测试任务携带的目标任务标识匹配的任务标识的情况下,从所述设定的存储空间中读取具有所述任务标识的所有执行记录。
31、本发明实施例还提供了一种任务测试装置,包括确定单元、执行单元、存储单元和生成单元;
32、所述确定单元,用于在获取到平台设备下发的测试命令的情况下,根据所述测试命令携带的参数信息以及当前测试任务所对应的各测试用例的执行状态,确定出所需执行的目标测试用例;其中,所述参数信息用于表征是否具有断点续跑需求;
33、所述执行单元,用于执行各所述目标测试用例;
34、所述存储单元,用于存储各所述目标测试用例的执行记录;
35、所述生成单元,用于在获取到所述平台设备下发的报告自动生成命令的情况下,根据所述当前测试任务的任务状态以及所述执行记录,生成测试报告,以便于所述平台设备展示所述测试报告。
36、一方面,所述确定单元包括续跑判断子单元、读取子单元、执行判断子单元和作为子单元;
37、所述续跑判断子单元,用于判断所述测试命令是否携带了断点续跑参数;
38、所述读取子单元,用于在所述测试命令携带了断点续跑参数的情况下,从设定的存储空间中读取上一次任务的执行记录;其中,所述上一次任务是与所述当前测试任务具有相同任务标识并且时间最接近的任务;
39、所述执行判断子单元,用于依据所述执行记录判断所述测试命令所指向的测试用例在上一次任务中是否被执行;
40、所述作为子单元,用于在所述测试命令所指向的测试用例在上一次任务中未被执行或者所述测试命令未携带断点续跑参数的情况下,将所述测试命令所指向的测试用例作为所需执行的目标测试用例。
41、一方面,所述作为子单元用于根据设定的任务标识和测试标识的对应关系以及所述测试命令携带的目标任务标识,确定所述测试命令匹配的目标测试标识;
42、从预先设定的所有测试用例中选取与所述目标测试标识匹配的目标测试用例。
43、一方面,所述作为子单元用于根据设定的任务标识和测试标识的对应关系以及所述测试命令携带的目标任务标识,确定所述测试命令匹配的目标测试标识;
44、从用例库中下载所述目标测试标识匹配的目标测试用例。
45、一方面,所述生成单元包括状态判断子单元、记录读取子单元、统计子单元和结束子单元;
46、所述状态判断子单元,用于判断所述当前测试任务的任务状态是否为运行状态;
47、所述记录读取子单元,用于在所述当前测试任务的任务状态为运行状态的情况下,按照周期时间从设定的存储空间中读取所述当前测试任务对应的所有执行记录;
48、所述统计子单元,用于从所述当前测试任务对应的所有执行记录中统计报告所需的各类信息,以生成测试报告;
49、所述结束子单元,用于在所述当前测试任务的任务状态不为运行状态的情况下,结束测试报告的生成。
50、一方面,所述统计子单元用于基于所述当前测试任务对应的所有执行记录,统计出测试用例总数、测试用例的执行状态分布以及每个测试用例的执行信息;其中,所述执行状态分布包括执行成功的测试用例个数、执行失败的测试用例个数以及未执行的测试用例个数。
51、一方面,所述存储单元用于记录各所述目标测试用例各自对应的执行记录;其中,所述执行记录包括各所述目标测试用例对应的目标任务标识、目标用例标识、执行状态和执行结果;其中,所述执行状态包括未执行、执行失败和执行成功;所述执行状态为执行失败的情况下,执行结果包括执行失败的原因;根据任务标识、测试用例所在的文件名以及用例标识设置的三级存储结构,将各所述执行记录存储至设定的存储空间;
52、相应的,所述记录读取子单元用于判断所述设定的存储空间是否存在与所述当前测试任务携带的目标任务标识匹配的任务标识;
53、在所述设定的存储空间不存在与所述当前测试任务携带的目标任务标识匹配的任务标识的情况下,向所述平台设备反馈测试任务记录异常的提示信息;
54、在所述设定的存储空间存在与所述当前测试任务携带的目标任务标识匹配的任务标识的情况下,从所述设定的存储空间中读取具有所述任务标识的所有执行记录。
55、本发明实施例还提供了一种任务测试系统,包括部署有任务集成系统的平台设备和至少一个执行设备;
56、所述平台设备,用于选取用于执行当前测试任务的目标执行设备,并向所述目标执行设备下发测试命令和报告自动生成命令;将从所述目标执行设备上读取测试报告进行展示;
57、所述目标执行设备,用于在获取到平台设备下发的测试命令的情况下,根据所述测试命令携带的参数信息以及当前测试任务所对应的各测试用例的执行状态,确定出所需执行的目标测试用例;执行各所述目标测试用例,并存储各所述目标测试用例的执行记录;在获取到所述平台设备下发的报告自动生成命令的情况下,根据所述当前测试任务的任务状态以及所述执行记录,生成测试报告。
58、本发明实施例还提供了一种电子设备,包括:
59、存储器,用于存储计算机程序;
60、处理器,用于执行所述计算机程序以实现如上述任务测试方法的步骤。
61、本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任务测试方法的步骤。
62、由上述技术方案可以看出,在获取到平台设备下发的测试命令的情况下,根据测试命令携带的参数信息以及当前测试任务所对应的各测试用例的执行状态,确定出所需执行的目标测试用例;参数信息用于表征是否具有断点续跑需求。执行各目标测试用例,并存储各目标测试用例的执行记录;在获取到平台设备下发的报告自动生成命令的情况下,根据当前测试任务的任务状态以及执行记录,生成测试报告,以便于平台设备展示测试报告。本发明的有益效果在于,通过在测试命令中携带参数信息可以识别出当前测试任务是否具有断点续跑的需求,测试用例的执行状态用于表示各测试用例在上一次任务中的执行情况。在当前测试任务具有断点续跑需求时,说明只需要对上一次任务中未执行的测试用例重新执行即可。因此结合各测试用例的执行状态,可以将上一次任务中未执行的测试用例作为所需执行的目标测试用例,通过执行目标测试用例,可以补充并输出完整的测试报告。无需重新执行测试任务对应的所有测试用例,加快了定位分析效率,整体上提高了自动化测试的鲁棒性,使得自动化测试更加的可靠和易用,解决了因为故障导致的用例报告不完整的问题,降低了故障场景下的全量耗时问题,提升了研发发版效率。并且通过存储每个目标测试用例的执行记录,可以做到测试报告的实时生成,无论自动化用例规模多大,都可以实时查看当前已执行的测试用例的报告,可以快速跟踪修复问题,极大的缩短解决问题的时间。