本技术涉及软件设计,尤其涉及一种用例测试方法、系统、设备以及存储介质。
背景技术:
1、在互联网产业高速发展的时代,软件产品的开发、测试、交付频率和周期越来越短,由于版本的快速迭代更新,回归测试已成为软件测试中极为重要的环节。
2、在关键字驱动模型中,测试人员可以使用关键字来描述测试步骤和动作,自动化测试执行时通过读取这些关键字来批处理测试用例,代码的复用性高,虽然可以有效提升测试效率,但很难实现复杂场景下的测试用例。而在数据驱动模型中,测试人员将可以使用数据来驱动测试的执行,自动化测试执行时,只需将规定好数据传递给函数,就可以实现相对复杂的测试场景,不过相同功能的不同场景存在代码冗余的问题。
3、关键字驱动虽然对工作效率有明显的提高,但是其开发成本大,过度依赖关键字驱动的自动化测试,可能会导致在一些不必要的场景中浪费时间和资源,反而降低了工作效率,且很难兼容一些特殊的异常场景,而数据驱动器恰好弥补了关键字驱动的缺点,可以完成一些场景复杂异常场景用例,但是用例之间存在重复操作,当重复的操作发生改变时,需要逐一进行测试用例代码的修改,两种模型的缺点显著。
技术实现思路
1、本发明的目的之一在于提供一种用例测试方法、系统、设备以及存储介质。
2、为了实现上述目的,本发明采用的技术方案如下:
3、本发明实施例第一方面提供了一种用例测试方法,所述方法包括:
4、准备测试数据,所述测试数据包括多种目标测试用例;
5、对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
6、根据所述测试方式,读取所述目标测试用例的类型参数;
7、将所述类型参数输入测试框架进行测试,并输出测试结果。
8、可选的,在所述将所述类型参数输入测试框架进行测试之前,所述方法还包括按照以下步骤初始化测试环境:
9、导入测试所需的辅助函数和数据;
10、对当前测试框架进行配置,定义初始化环境参数;
11、将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
12、可选的,所述根据所述测试方式,读取所述目标测试用例的类型参数,包括:
13、在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
14、在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
15、所述将所述类型参数输入测试框架进行测试,包括:
16、在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
17、在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
18、可选的,在所述进行关键字驱动用例测试之后,所述方法还包括:
19、在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
20、对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
21、根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
22、将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
23、可选的,所述对所述目标测试用例进行数据处理,确定需要使用的测试方式,包括:
24、对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
25、所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
26、根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
27、所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
28、将所述list类型参数输入所述测试框架进行测试;
29、在所述测试全部完成的情况下,输出测试结果;
30、在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
31、对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
32、根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
33、将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
34、可选的,所述方法还包括:
35、在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
36、所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
37、将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
38、根据所述测试日志数据,输出测试结果;
39、所述方法还包括:
40、根据所述测试日志数据和所述测试结果生成测试报告。
41、可选的,所述准备测试数据,包括:
42、通过用例函数名称从预设文件中读取目标测试用例;
43、所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
44、本发明实施例第二方面提供了一种用例测试系统,所述系统包括:
45、第一数据准备模块,用于准备测试数据,所述测试数据包括多种目标测试用例;
46、第二数据处理模块,用于对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;
47、第三数据测试模块,用于根据所述测试方式,读取所述目标测试用例的类型参数;
48、第四结果输出模块,用于将所述类型参数输入测试框架进行测试,并输出测试结果。
49、可选的,所述系统还包括:
50、第二数据准备模块,导入测试所需的辅助函数和数据;
51、第一数据整理模块,对当前测试框架进行配置,定义初始化环境参数;
52、数据分析模块,将测试过程中需要使用的封装工具加入测试环境中,所述封装工具用于记录测试日志、存储所述测试结果及生成测试报告。
53、可选的,所述第二数据处理模块,包括:
54、第一数据读取模块,在所述测试方式为关键字驱动的情况下,读取所述目标测试用例的list类型参数;
55、第二数据读取模块,在所述测试方式为数据驱动的情况下,读取所述目标测试用例的dict类型参数;
56、所述将所述类型参数输入测试框架进行测试,包括:
57、第一数据执行模块,在所述目标测试用例的类型参数为list类型参数的情况下,进行关键字驱动用例测试;
58、第二数据执行模块,在所述目标测试用例的类型参数为dict类型参数的情况下,进行数据驱动用例测试。
59、可选的,所述系统还包括:
60、第一数据获取模块,在所述关键字驱动用例测试有部分测试出错的情况下,获取出错部分对应的目标测试用例;
61、第二数据整理模块,对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
62、第二数据获取模块,根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
63、第三数据整理模块,将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
64、可选的,所述第二数据处理模块,包括:
65、第一确定模块,对所述目标测试用例进行数据处理,将测试方式确定为关键字驱动;
66、所述根据所述关键字方式,读取所述目标测试用例的类型参数,包括:
67、第一执行模块,根据所述关键字驱动,将所述目标测试用例的类型参数读取为list类型参数;
68、第二数据分析模块,所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
69、第二执行模块,将所述list类型参数输入所述测试框架进行测试;
70、第三数据分析模块,在所述测试全部完成的情况下,输出测试结果;
71、判断获取模块,在所述测试部分出错的情况下,获取出错部分对应的目标测试用例;
72、数据转换模块,对所述出错部分对应的目标测试用例进行数据处理,并将所述测试方式确定为数据驱动;
73、第三执行模块根据所述数据驱动,将所述目标测试用例的类型参数读取为dict类型参数;
74、第三数据整合模块,将所述dict类型参数输入所述测试框架进行测试,并输出测试结果。
75、可选的,所述系统还包括:
76、第一日志获取模块,在所述测试过程中,获取测试日志数据,所述测试日志数据包括输入数据和输出数据,以及所述测试过程中出现的bug;
77、第一报告生成模块,所述将所述类型参数输入测试框架进行测试,并输出测试结果,包括:
78、第二日志获取模块将所述类型参数输入测试框架进行测试,并在测试过程中,获取测试日志数据;
79、第二报告生成模块,根据所述测试日志数据,输出测试结果;
80、第三报告生成模块,根据所述测试日志数据和所述测试结果生成测试报告。
81、可选的,所述第一数据准备模块,包括:
82、数据调用模块,通过用例函数名称从预设文件中读取目标测试用例;
83、所述目标测试用例中存储至少一条测试数据,所述测试数据预设在目标测试用例中。
84、本发明实施例第三方面提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明实施例第一方面任一项所述的用例测试方法。
85、本发明实施例第四方面提供了一种可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例第一方面任一项所述的用例测试方法。
86、通过本发明实施例提供的用例测试方法,准备测试数据,所述测试数据包括多种目标测试用例;对所述目标测试用例进行数据处理,确定需要使用的测试方式,所述测试方式包括:关键字驱动和数据驱动;根据所述测试方式,读取所述目标测试用例的类型参数;将所述类型参数输入测试框架进行测试,并输出测试结果。通过本实施例提供的方法,可以使关键字驱动与数据驱动之间建立一座桥梁,可以随意切换使用关键字驱动、数据驱动模型,该软件测试方法可以大量提高代码复用度,有效减少代码冗余度,从而提升自动化测试用例代码开发效率,让回归测试方便可靠,测试用例覆盖面广泛,减少测试周期,产品可以快速迭代,同时还能保证往期功能的准确性。