本公开涉及自动化测试,尤其涉及一种可视化测试方法、装置、电子设备及存储介质。
背景技术:
1、全球广域网(world wide web,web)前端可视化测试的主要目的是从用户的角度来检验产品的质量,对真实使用场景进行仿真测试,如打开浏览器,使用各种功能、各种交互,以验证界面或功能是否符合预期。
2、现有技术中,需要测试人员手动操作对web前端进行可视化测试,所花费的时间成本以及维护成本较高,可视化测试的效率较低。
技术实现思路
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、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。