本发明涉及命令行界面测试,特别是涉及一种命令行界面自动测试方法、装置、电子设备及存储介质。
背景技术:
1、对于命令行接口的测试的主要目的是为了确保产出的质量,在测试过程中有很多细节或重复性的测试,它大致分为两种,一是手动测试,由测试人员在未使用工具或脚本情况下执行,第二种是自动化测试,其需要藉由工具及脚本的辅助来进行测试。手动测试的缺点诸多,如非常耗时且占用人力、因人为错误的可能性而降低准确性、无法批量处理、构建验证测试时非常困难且耗时等等,但是传统的自动化测试又必须由专人建立测试计划包括用户需要自己输入关键参数,才能在花费大量时间、精力的情况下提高命令行的代码覆盖率。
技术实现思路
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、根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
63、当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
64、再一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
65、响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;
66、根据所述原始码文件生成多个原始码参数;
67、根据所述多个原始码参数生成测试参数;
68、根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
69、在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
70、所述根据所述原始码文件生成多个原始码参数包括:
71、读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
72、获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
73、根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
74、其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
75、在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
76、所述根据所述多个原始码参数生成测试参数包括:
77、校验所述多个原始码参数是否都合法;
78、若是,则将所述多个原始码参数排列组合生成所述测试参数;
79、若否,则向所述用户告警。
80、在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
81、所述根据所述多个原始码参数生成测试参数还包括:
82、根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
83、确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
84、若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
85、若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
86、在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
87、所述确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
88、若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
89、根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
90、若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
91、在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
92、所述根据所述第一总数阈值修改所述测试参数中的极限值包括:
93、减小所述测试参数中的极限值并重新计算所述测试参数总数;
94、确定重新计算的测试参数总数是否大于所述第一总数阈值;
95、若是,则继续减小所述测试参数中的极限值;
96、若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
97、在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:
98、所述根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
99、根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
100、当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
101、又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
102、响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;
103、根据所述原始码文件生成多个原始码参数;
104、根据所述多个原始码参数生成测试参数;
105、根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。
106、在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
107、所述根据所述原始码文件生成多个原始码参数包括:
108、读取所述原始码文件中的根节点并遍历所述根节点中的子节点;
109、获取所述子节点对应的第一参数信息并根据所述子节点生成选项节点;
110、根据所述第一参数信息和所述选项节点对应的第二参数信息生成所述多个原始码参数;
111、其中所述第一参数信息包括第一参数名称、字符串类型和字符串选项;所述第二参数信息包括第二参数名称、数据类型和极限值。
112、在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
113、所述根据所述多个原始码参数生成测试参数包括:
114、校验所述多个原始码参数是否都合法;
115、若是,则将所述多个原始码参数排列组合生成所述测试参数;
116、若否,则向所述用户告警。
117、在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
118、所述根据所述多个原始码参数生成测试参数还包括:
119、根据所述字符串选项的第一选项值和所述极限值的第二选项值计算出所述测试参数的测试参数总数;
120、确定所述测试参数总数是否大于所述用户设置的第一总数阈值;
121、若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本;
122、若是,则确定所述测试参数总数是否大于所述用户设置的第二总数阈值。
123、在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
124、所述确定所述测试参数总数是否大于所述用户设置的第二总数阈值包括:
125、若否,则根据所述第一总数阈值对所述测试参数进行随机采样,
126、根据随机采样的测试参数生成自动化测试的测试用例和测试脚本;
127、若是,则根据所述第一总数阈值修改所述测试参数中的极限值。
128、在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
129、所述根据所述第一总数阈值修改所述测试参数中的极限值包括:
130、减小所述测试参数中的极限值并重新计算所述测试参数总数;
131、确定重新计算的测试参数总数是否大于所述第一总数阈值;
132、若是,则继续减小所述测试参数中的极限值;
133、若否,则根据所述测试参数生成自动化测试的测试用例和测试脚本。
134、在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:
135、所述根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试之后包括:
136、根据所述测试用例的预期结果和所述自动化测试的测试结果计算出所述自动化测试的误差率;
137、当所述误差率高于所述用户设置的误差阈值时,向所述用户告警。
138、响应于接收到用户发送的命令行界面的自动化测试指令,获取所述命令行界面的原始码文件;根据所述原始码文件生成多个原始码参数;根据所述多个原始码参数生成测试参数;根据所述测试参数生成自动化测试的测试用例和测试脚本并执行所述命令行界面的自动化测试。通过分析命令行界面的原始码,自动生成并排列组合产出合理的测试参数后进行自动化测试,无须用户撰写测试参数的同时提高代码覆盖率,减轻了用户的工作压力。