System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,特别是涉及一种测试软件产品的方法、系统、装置、设备和介质。
技术介绍
1、随着虚幻引擎(unreal engine,ue)技术的快速发展,对于使用虚幻引擎开发得到的软件产品的测试需求日益增长。开发人员通过对开发得到的各个软件产品进行c++接口和用户界面(user interface,ui)相关的测试,可以保证软件产品的质量。
2、然而,传统基于人工的软件产品测试方法的测试效率较低,极大影响了相关软件产品的开发及发布效率。
技术实现思路
1、鉴于上述问题,本申请实施例提供了一种测试软件产品的方法、系统、装置、设备和介质,以便克服上述问题或者至少部分地解决上述问题。
2、本申请实施例的第一方面,提供了一种测试软件产品的方法,所述方法应用于gtest引擎,包括:
3、响应于接收到待测软件产品发送的启动指令,执行gtest的初始化操作和各个测试用例的加载操作,所述待测软件产品是使用虚幻引擎开发得到的,所述各个测试用例包括:所述待测软件产品的c++接口测试相关的各个测试用例,和/或,所述待测软件产品的用户界面ui测试相关的各个测试用例;
4、通过测试服务执行所述gtest引擎加载的各个测试用例,得到所述各个测试用例的执行结果;
5、将所述各个测试用例的执行结果返回至所述待测软件产品。
6、作为一种可能的实施方式,所述各个测试用例至少包括所述待测软件产品的ui测试相关的各个测试用例;
7、所
8、通过所述测试服务向测试守护进程发送ui测试指令,以使所述测试守护进程请求ui自动化测试框架,根据所述ui测试相关的各个测试用例对所述待测软件产品进行ui操作,以得到所述ui测试相关的各个测试用例的执行结果,其中,所述待测软件产品、所述gtest引擎和所述测试服务部署在第一设备上,所述测试守护进程和所述ui自动化测试框架部署在第二设备上,所述第一设备和所述第二设备为不同的设备。
9、作为一种可能的实施方式,所述ui自动化测试框架在执行跨软件产品的ui测试时,是基于预设通信方式对退回到设备系统后台的软件产品实现ui操作的,所述预设通信方式包括:锁和条件变量,文件通信,以及套接字socket通信中至少之一。
10、作为一种可能的实施方式,所述测试服务是基于预先配置的c++类和asynctask对所述各个测试用例进行执行的,所述虚幻引擎中预先添加有gtestplugin蓝图类,所述gtestplugin蓝图类封装有gtest的初始化逻辑和执行逻辑;
11、所述方法还包括:
12、配置继承自所述gtestplugin蓝图类的c++类,所述c++类用于为所述测试服务提供并行执行多个测试用例的能力;
13、在所述虚幻引擎的组件component中配置asynctask,所述asynctask用于为所述测试服务提供以异步任务执行方式执行测试用例的能力。
14、作为一种可能的实施方式,所述方法还包括:
15、利用语义大模型对历史测试数据进行学习和分析,生成测试用例和其所对应的断言。
16、作为一种可能的实施方式,所述方法还包括:
17、通过代码覆盖率分析工具,对所述各个测试用例的覆盖率进行分析;
18、通过性能分析工具,在所述各个测试用例的执行过程中对所述待测软件产品进行性能分析。
19、本申请实施例的第二方面,提供了一种测试软件产品的系统,所述系统包括gtest引擎和测试服务,其中:
20、所述gtest引擎,用于响应于接收到待测软件产品发送的启动指令,执行gtest的初始化操作和各个测试用例的加载操作,所述待测软件产品是使用虚幻引擎开发得到的,所述各个测试用例包括:所述待测软件产品的c++接口测试相关的各个测试用例,和/或,所述待测软件产品的用户界面ui测试相关的各个测试用例;
21、所述gtest引擎,还用于向所述测试服务发送所述gtest引擎加载的各个测试用例的执行指令;
22、所述测试服务,用于根据接收到的执行指令,执行所述gtest引擎加载的各个测试用例,并将所述各个测试用例的执行结果返回至所述gtest引擎;
23、所述gtest引擎,还用于将所述各个测试用例的执行结果返回至所述待测软件产品。
24、本申请实施例的第三方面,提供了一种测试软件产品的装置,所述装置应用于gtest引擎,包括:
25、指令接收模块,用于响应于接收到待测软件产品发送的启动指令,执行gtest的初始化操作和各个测试用例的加载操作,所述待测软件产品是使用虚幻引擎开发得到的,所述各个测试用例包括:所述待测软件产品的c++接口测试相关的各个测试用例,和/或,所述待测软件产品的用户界面ui测试相关的各个测试用例;
26、测试执行模块,用于通过测试服务执行所述gtest引擎加载的各个测试用例,得到所述各个测试用例的执行结果;
27、结果发送模块,用于将所述各个测试用例的执行结果返回至所述待测软件产品。
28、本申请实施例的第四方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的测试软件产品的方法的步骤。
29、本申请实施例的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的测试软件产品的方法的步骤。
30、本申请实施例的第六方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如本申请实施例公开的第一方面所述的测试软件产品的方法。
31、本申请实施例包括以下优点:gtest引擎响应于接收到待测软件产品发送的启动指令,会自动加载gtest的初始化部分和测试用例部分,然后调用测试服务执行自身加载的各个测试用例,并将得到的所述各个测试用例的执行结果返回至待测软件产品,由此基于gtest实现了对虚幻引擎所开发软件产品的自动化测试(即实现c++接口和/或ui的自动化测试),可以提升测试效率,进而提高相关软件产品的开发和发布效率。
本文档来自技高网...【技术保护点】
1.一种测试软件产品的方法,其特征在于,应用于GTest引擎,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述各个测试用例至少包括所述待测软件产品的UI测试相关的各个测试用例;
3.根据权利要求2所述的方法,其特征在于,所述UI自动化测试框架在执行跨软件产品的UI测试时,是基于预设通信方式对退回到设备系统后台的软件产品实现UI操作的,所述预设通信方式包括:锁和条件变量,文件通信,以及套接字Socket通信中至少之一。
4.根据权利要求1所述的方法,其特征在于,所述测试服务是基于预先配置的C++类和AsyncTask对所述各个测试用例进行执行的,所述虚幻引擎中预先添加有GTestPlugin蓝图类,所述GTestPlugin蓝图类封装有GTest的初始化逻辑和执行逻辑;
5.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
7.一种测试软件产品的系统,其特征在于,所述系统包括GTest引擎和测试服务,其中:
< ...【技术特征摘要】
1.一种测试软件产品的方法,其特征在于,应用于gtest引擎,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述各个测试用例至少包括所述待测软件产品的ui测试相关的各个测试用例;
3.根据权利要求2所述的方法,其特征在于,所述ui自动化测试框架在执行跨软件产品的ui测试时,是基于预设通信方式对退回到设备系统后台的软件产品实现ui操作的,所述预设通信方式包括:锁和条件变量,文件通信,以及套接字socket通信中至少之一。
4.根据权利要求1所述的方法,其特征在于,所述测试服务是基于预先配置的c++类和asynctask对所述各个测试用例进行执行的,所述虚幻引擎中预先添加有gtestplugin蓝图类,所述gtestplugin蓝图类封装有gtest的初始化逻...
【专利技术属性】
技术研发人员:杨凯,
申请(专利权)人:中电信人工智能科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。