CN110457218A - 游戏引擎测试方法、装置、存储介质及电子设备 - Google Patents

游戏引擎测试方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN110457218A
CN110457218A CN201910727284.7A CN201910727284A CN110457218A CN 110457218 A CN110457218 A CN 110457218A CN 201910727284 A CN201910727284 A CN 201910727284A CN 110457218 A CN110457218 A CN 110457218A
Authority
CN
China
Prior art keywords
test
programming interface
game engine
application programming
tested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910727284.7A
Other languages
English (en)
Inventor
冯张弛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910727284.7A priority Critical patent/CN110457218A/zh
Publication of CN110457218A publication Critical patent/CN110457218A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种游戏引擎测试方法、装置、存储介质及电子设备,本申请实施例中,启动游戏引擎,通过游戏引擎运行预设的测试框架;通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试;获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果;分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。本申请实施例通过测试框架自动调取游戏引擎中的待测试应用程序编程接口进行测试,无需人为操作,从而节省了人力成本,大大提高了游戏引擎的测试效率。

Description

游戏引擎测试方法、装置、存储介质及电子设备
技术领域
本申请涉及游戏测试技术领域,具体涉及一种游戏引擎测试方法、装置、存储介质及电子设备。
背景技术
游戏引擎是运行游戏的核心组件,用于提供游戏运行所需的各种工具。日常生活中,人们的移动终端上安装有各种游戏引擎以支持各种游戏运行。为了确保移动终端上的游戏正常运行,需要对游戏引擎进行测试,以检测游戏引擎是否存在性能问题。目前,相关技术中对游戏引擎的测试依靠人为操作,每轮迭代中需要回归的用例十分繁多,耗费人力巨大,测试效率低。
发明内容
本申请实施例提供了一种游戏引擎测试方法、装置、存储介质及电子设备,能够提高游戏引擎的测试效率。
第一方面,本申请实施例提供了一种游戏引擎测试方法,所述游戏引擎测试方法包括:
启动游戏引擎,通过所述游戏引擎运行预设的测试框架;
通过所述测试框架调用所述游戏引擎中的待测试应用程序编程接口执行测试用例,以对所述待测试应用程序编程接口进行测试;
获取所述待测试应用程序编程接口的调用结果,根据所述调用结果得到测试结果;
分析所述测试结果以确定所述待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
第二方面,本申请实施例提供了一种游戏引擎测试装置,所述游戏引擎测试装置包括:
运行模块,用于启动游戏引擎,通过所述游戏引擎运行预设的测试框架;
测试模块,用于通过所述测试框架调用所述游戏引擎中的待测试应用程序编程接口执行测试用例,以对所述待测试应用程序编程接口进行测试;
获取模块,用于获取所述待测试应用程序编程接口的调用结果,根据所述调用结果得到测试结果;
分析模块,用于分析所述测试结果以确定所述待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
第三方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请实施例提供的游戏引擎测试方法。
第四方面,本申请实施例提供了一种电子设备,包括处理器和存储器,当所述计算机程序被处理器调用时,使得所述处理器执行如本申请实施例提供的游戏引擎测试方法。
本申请实施例中,启动游戏引擎,通过游戏引擎运行预设的测试框架;通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试;获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果;分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。本申请实施例通过测试框架自动调取游戏引擎中的待测试应用程序编程接口进行测试,无需人为操作,从而节省了人力成本,大大提高了游戏引擎的测试效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的游戏引擎测试方法的一流程示意图。
图2是本申请实施例提供的测试用例的测试步骤示意图。
图3是本申请实施例提供的测试框架的运行原理示意图。
图4是本申请实施例提供的游戏引擎测试方法的另一流程示意图。
图5是本申请实施例提供的游戏引擎测试装置的一结构示意图。
图6是本申请实施例提供的游戏引擎测试装置的另一结构示意图。
图7是本申请实施例提供的游戏引擎测试装置的又一结构示意图。
图8是本申请实施例提供的电子设备的一结构示意图。
图9是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
本申请实施例首先提供一种游戏引擎测试方法,该游戏引擎测试方法应用于电子设备。其中,该游戏引擎测试方法的执行主体可以是本申请实施例提供的游戏引擎测试装置,或者集成了该游戏引擎测试装置的电子设备,该游戏引擎测试装置可以采用硬件或者软件的方式实现,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等配置有处理器而具有处理能力的设备。
请参照图1,图1为本申请实施例提供的游戏引擎测试方法的一流程示意图。该游戏引擎测试方法可应用于本申请实施例提供的电子设备,如图1所示,本申请实施例提供的游戏引擎测试方法的流程可以如下:
101,启动游戏引擎,通过游戏引擎运行预设的测试框架。
其中,游戏可以为快游戏,在进入快游戏时,启动快游戏的游戏引擎。快游戏作为一种基于快应用技术的即点即玩的游戏形态,可与操作系统(Operating System,OS)各流量场景深度结合。在进入快游戏时,用户无需下载和安装,直接点击即可进入游戏。游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为开发者提供各种编写游戏所需的各种工具,让开发者能容易和快速地做出游戏程式而不用由零开始。目前,快游戏可以使用的游戏引擎有Laya引擎、Cocos引擎等。
通过快游戏的游戏引擎运行预设的测试框架,预设的测试框架可以为使用静态类型语言搭建的测试框架。例如,对快应用的自动化测试框架进行改进,使用TS(TypeScript编程语言)搭建快游戏的测试框架。对于JS(JavaScript编程语言)搭建的快应用自动化测试框架,JS是一种动态类型语言,其变量类型要到程序运行的时候,待变量被赋了某个值才能知道其类型。由于动态类型语言缺乏类型系统与编译期,将导致很多问题被直接忽略掉,无法及时被发现,进而形成恶性循环。TS是微软开源的编程语言,具有类型系统,且是JS的超集。特可以被编译成普通的JS代码。TS支持任意浏览器,任意环境,任意系统,并且是开源的。使用TS代替JS搭建测试框架的好处是:TS是一种静态类型语言,在代码被编译时变量的类型便已确定了,可以有效防止许多潜在的运行错误,让许多问题在编译期暴露出来,减少低级错漏的出现。
102,通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试。
快游戏的游戏引擎的应用程序编程接口是比普通游戏引擎的应用程序编程接口是更高级别的抽象,建立在其他底层游戏引擎的基础上。快游戏的游戏引擎本身是封闭的,通过应用程序编程接口与外界沟通。换言之,快游戏通过调用应用程序编程接口调用游戏引擎的功能,因而,需要API级别的测试手段对游戏引擎进行测试,例如,测试声音的大小、测试绘制色彩是否正确,等等。
例如,选用TS搭建的mocha测试框架作为预设的测试框架,在进入快游戏时,启动快游戏的游戏引擎,通过游戏引擎运行该测试框架,通过该测试框架执行测试用例。其中,测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
请参阅图2,图2为本申请实施例提供的测试用例的测试步骤示意图。测试用例中可以包括多组测试步骤,具体可以由代码实现,每一组测试步骤都有对应数据及期望结果。其中,该测试用例的测试目的为验证是否输入合法的信息,允许合法登录,组织非法登录。在执行该测试用例时,调用游戏引擎中的相关应用程序编程接口执行相关的测试步骤。只有当用户输入完整和正确的用户名及密码(用户名=yiyh,密码=1)时,才进行登录。我们希望输入的用户名和密码不完整时,测试用例显示一警告信息而不是直接登录。在测试步骤1中,按照“用户名=yiyh,密码为空”输入数据,由于此时未输入密码,信息并不完整,如果执行该测试用例后显示警告信息“请输入用户名和密码!”则认为调用结果符合预期;在测试步骤2中,按照“用户名为空,密码=1”输入数据,由于此时未输入用户名,信息并不完整,如果执行该测试用例后显示警告信息“请输入用户名和密码!”则认为调用结果符合预期;在测试步骤3中,按照“用户名=yiyh,密码=1”输入数据,此时已经输入了完整信息,如果执行该测试用例后允许登录,则认为调用结果符合预期。
本领域技术人员须知,上述举例只是示例性的,为了说明测试用例的执行原理,不构成对本发明测试用例执行步骤的限制。测试用例在执行其中的测试步骤时调用游戏引擎中的各个待测试应用程序编程接口,因而可以根据测试用例的执行情况来测试游戏引擎中的应用程序编程接口(Application Programming Interface,API),从而测试游戏引擎是否正常,如果测试用例的执行情况符合预期,则可认为调用的应用程序编程接口运行正常,游戏引擎的运行正常。
在一实施例中,通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试包括:
识别测试用例中的测试步骤是否用于测试图形渲染类应用程序编程接口;若是,则通过测试框架创建图形渲染类应用程序编程接口的对应页面;通过测试框架调用图形渲染类应用程序编程接口,在图形渲染类应用程序编程接口的对应页面中完成渲染。
若否,则直接调用测试用例对应的应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试。
其中,在测试游戏引擎时,可以将游戏引擎中的应用程序编程接口分为两类:图形渲染类应用程序编程接口和与渲染无关的应用程序编程接口。当测试用例中的测试步骤用于测试图形渲染类应用程序编程接口时,在调用应用程序编程接口进行测试之前,创建至少一个新的页面,以在该新的页面中完成渲染,如果渲染出的页面符合预期,则可认为该与渲染相关的应用程序编程接口运作正常;若测试用例中的测试步骤只用于测试与渲染无关的应用程序编程接口,则直接调用对应应用程序编程接口执行测试用例进行测试,如果预设游戏框架通过调用该应用程序编程接口,可以正常执行该应用程序编程接口的对应功能,则可认为该与渲染无关的应用程序编程接口运行正常。
103,获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果。
由于游戏引擎通过应用程序编程接口执行测试用例,因而,待测试应用程序编程接口的调用结果可以反映出待测试应用程序编程接口的测试结果。
例如,当待测试应用程序编程接口为图形渲染类应用程序编程接口时,如果该图形渲染类应用程序编程接口的对应页面上像素点的色彩数据与用户期望的色彩数据的差值在预设范围内,则可认为该图形渲染类应用程序编程接口的调用结果符合预期,得到图形渲染类应用程序编程接口通过测试的测试结果。
反之,若该图形渲染类应用程序编程接口的对应页面上像素点的色彩数据明显偏离用户期望的色彩数据,或该图形渲染类应用程序编程接口的对应页面上像素点的色彩数据与用户期望的色彩数据的差值不在预设范围内,则可认为该图形渲染类应用程序编程接口的调用结果不符合预期,得到图形渲染类应用程序编程接口未通过测试的测试结果。
104,分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
在一实施例中,对待测试应用程序编程接口的测试结果进行分析,若待测试应用程序编程接口通过测试,则认为该待测试应用程序编程接口满足预设条件;若待测试应用程序编程接口未通过测试,则认为该待测试应用程序编程接口不满足预设条件。
或者,对同一待测试应用程序编程接口进行多次测试,当待测试应用程序编程接口通过测试的次数在总测试次数中的占比大于预设占比时,认为该待测试应用程序编程接口满足预设条件;反之,则认为该待测试应用程序编程接口不满足预设条件。例如,设定预设占比为95%,如果同一待测试应用程序编程接口进行了100次测试,若通过测试的次数大于95次,则认为该待测试应用程序编程接口满足预设条件;若通过测试的次数小于或等于95次,则认为该待测试应用程序编程接口不满足预设条件。
当分析出待测试应用程序编程接口是否满足预设条件后,将分析结果进行上报。
在一实施例中,启动游戏引擎之前,还包括:
(1)搭建测试框架;
(2)获取测试框架的代码,并将测试框架的代码打包成可执行文件;
(3)运行可执行文件以启动游戏引擎。
请一并参阅图3,图3为本申请实施例提供的测试框架的运行原理示意图。使用TS编程语言搭建测试框架,搭建完成后,获取测试框架的代码,将测试框架的代码进行layabox打包,打包成可执行文件(例如,rpk包)。将可执行文件传输到电子设备中,在电子设备中打开并运行该可执行文件时,启动游戏引擎。
在一实施例中,在获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果之后,还包括:
清除测试用例执行过程中的中间文件。
在根据待测试应用程序编程接口的调用结果得到测试结果之后,为了避免影响下次测试,对测试环境进行清理。在测试用例的执行过程中,会产生很多中间文件,例如:执行某一测试用例时,画了一个圆圈,那么,在该测试用例执行完毕后,将该圆圈相关的中间文件清除,将测试环境还原到初始状态,以避免影响后一测试用例的执行。
在一实施例中,当测试用例调用应用程序编程接口的过程中存在界面交互请求时,通过超文本传输协议连接预设服务器,以响应界面交互请求。
在某些测试用例调用应用程序编程接口的执行过程中,可能会以弹框等形式发起界面交互请求,请求用户输入某些数据或者执行某些操作,而人为响应这些界面交互请求不仅会浪费大量的人力,还会对测试效率造成影响。因而,通过超文本传输协议(HyperText Transfer Protocol,HTTP)连接预设服务器,由预设服务器根据预设的响应步骤对这些界面交互请求进行响应,这样一来,即使在测试用例的执行过程中出现需要人为操作的步骤,也可以通过预设服务器代替人进行响应,完成自动化测试。
例如,通过超文本传输协议接入辅助页面(User Interface,UI)服务,该辅助UI服务包含简洁的应用程序编程接口,若某些测试用例在执行过程中以弹框等形式请求用户授权,该辅助UI服务通过这些简洁的应用程序编程接口,在请求用户授权的弹框中自动点击确认键,维持测试用例的自动运行而无需人为介入。
由上可知,本申请实施例中,启动游戏引擎,通过游戏引擎运行预设的测试框架;通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试;获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果;分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。本申请实施例通过测试框架自动调取游戏引擎中的待测试应用程序编程接口进行测试,无需人为操作,从而节省了人力成本,大大提高了游戏引擎的测试效率。
请继续参照图4,图4为本申请实施例提供的游戏引擎测试方法的另一种流程示意图。该游戏引擎测试方法的流程可以包括:
201、搭建测试框架。
其中,为了测试快游戏的游戏引擎暴露的JS应用程序编程接口,搭建的测试框架是与结点(node)、文档对象模型(Document Object Model,DOM)操作无依赖的JS测试框架,例如,mocha开源框架。
JS的主流运行环境包括node与浏览器,大多数的开源工具也基于这两种环境开发。而快游戏的运行环境较为特殊,它只是利用JS作为脚本语言处理游戏逻辑,简化开发流程。同时,为保障JS的功能纯净,快游戏引擎禁止了JS进行DOM操作,这导致了许多基于浏览器环境的开源库难以直接被用于快游戏运行环境上;而该环境同样缺少node API的支持,使得建立在node环境上的框架难以被直接使用。因而,搭建的测试框架是与node、DOM操作无依赖的JS测试框架,例如,选用mocha开源框架作为快游戏特殊运行环境的测试框架。
在一实施例中,通过快游戏的游戏引擎运行测试框架,测试框架可以为使用静态类型语言搭建的测试框架。例如,对快应用的自动化测试框架进行改进,使用TS(TypeScript编程语言)搭建快游戏的测试框架。对于JS(JavaScript编程语言)搭建的快应用自动化测试框架,JS是一种动态类型语言,其变量类型要到程序运行的时候,待变量被赋了某个值才能知道其类型。由于动态类型语言缺乏类型系统与编译期,将导致很多问题被直接忽略掉,无法及时被发现,进而形成恶性循环。而使用TS代替JS搭建测试框架的好处是:TS是一种静态类型语言,在代码被编译时变量的类型便已确定了,可以有效防止许多潜在的运行错误,让许多问题在编译期暴露出来,减少低级错漏的出现。
在开发测试框架时,可以采用Laya IDE进行框架的开发,Laya IDE对快游戏的支持性较好,能够提高开发效率。开发出的测试框架将以Laya游戏的形式出现。
在一实施例中,测试框架中可以包含以下文件:
auto_pack:快游戏命令行打包工具(待开发);
bin:laya游戏打包后不再改变的部分,可以理解为laya本身提供的静态库;
Dockerfile:利用docker对编译环境标准化;
Jenkinsfile:标准化流水线;
Libs:公共库;
push.sh:自动化打包与推送脚本,用于简化开发人员调试流程;
README.md:项目介绍与描述;
sonar-project.properties:sonarqube配置文件;
src:代码根目录;
tsconfig.json:ts配置文件;
tslint.json:ts格式化文件;
在测试框架实际落地到生产环境时,使用开源的应用容器引擎支撑构建与测试,使全流程标准化,例如Docker引擎。
202、获取测试框架的代码,并将测试框架的代码打包成可执行文件。
在将测试框架的代码打包成可执行文件前,使用Jekins进行持续集成,监控持续重复的工作。Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。Jekins允许持续集成和持续交付项目,可以处理任何类型的构建或持续集成。
203、运行可执行文件以启动游戏引擎,通过游戏引擎运行测试框架。
请一并参阅图3,图3为本申请实施例提供的测试框架的运行原理示意图。使用TS编程语言搭建测试框架,搭建完成后,获取测试框架的代码,将测试框架的代码进行layabox打包,打包成可执行文件(例如,rpk包)。将可执行文件传输到电子设备中,在电子设备中打开并运行该可执行文件时,启动游戏引擎。
204、识别测试用例中的测试步骤是否用于测试图形渲染类应用程序编程接口,若是则转入步骤205,若否则转入步骤206。
游戏引擎中有部分应用程序编程接口是负责渲染图形的,例如,canvas、webgl,我们将这些负责渲染图形的应用程序编程接口称作图形渲染类应用程序编程接口。
在一实施例中,识别测试用例中的测试步骤是否用于测试图形渲染类应用程序编程接口包括:识别测试用例在执行时调用的应用程序编程接口是否为图形渲染类编程接口;当测试用例在执行时调用的应用程序编程接口为图形渲染类编程接口时,判定测试用例中的测试步骤用于测试图形渲染类应用程序编程接口。
205、通过测试框架创建图形渲染类应用程序编程接口的对应页面,通过测试框架调用图形渲染类应用程序编程接口,在图形渲染类应用程序编程接口的对应页面中完成渲染。
若测试用例中的测试步骤是用于测试图形渲染类应用程序编程接口,则通过测试框架创建该图形渲染类应用程序编程接口的至少一个对应页面,通过测试框架调用图形渲染类应用程序编程接口,在至少一个对应页面中完成渲染,得到渲染完成后的至少一个对应页面。
206、获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果。
当识别出测试用例中的测试步骤用于测试图形渲染类应用程序编程接口时,步骤206包括:
2061、获取图形渲染类应用程序编程接口的对应页面上像素点的色彩数据。
2062、判断色彩数据是否与期望色彩数据匹配,若是则转入步骤208。
2063、得到图形渲染类应用程序编程接口通过测试的测试结果。
其中,色彩数据可以为RGB(红绿蓝三原色)数据,在RGB数据中,红、绿、蓝三个颜色通道每种色各分为256阶亮度,对红、绿、蓝三个颜色通道取不同的数值,由此可以组合出256×256×256≈1678万种色彩,例如,三色灰度数值都为0时,(0,0,0)是最暗的黑色调;三色灰度数值都为255时,(255,255,255)是最亮的白色调。
获取图形渲染类应用程序编程接口的对应页面上像素点的色彩数据,其中,每一个像素点的色彩数据都可以用一个RGB数据中三组灰度数值表示。用户期望的色彩数据也可以用另一个RGB数据中的三组灰度数值表示,通过对比两个RGB数据,就能够判断像素点的色彩数据是否与期望色彩数据匹配。
在一实施例中,判断色彩数据是否与期望色彩数据匹配的步骤包括:
(1)获取色彩数据与期望色彩数据的差值;
(2)判断色彩数据与期望色彩数据的差值是否在预设范围内;
(3)若是,则判定色彩数据是否与期望色彩数据相匹配。
其中,像素点的色彩数据为像素点的当前RGB数据,期望色彩数据为该像素点的期望RGB数据。例如,若当前RGB数据与期望RGB数据的差值在(±2,±2,±2)内时,认为色彩数据与期望色彩数据的差值在预设范围内。若期望RGB数据为(150,150,150),而当前RGB数据为(148,150,152),获取到当前RGB数据与期望RGB数据的差值为(-2,0,2),在预设范围内,因而,判定当前像素点的RGB数据与当前像素点期望RGB数据相匹配。
遍历页面中的所有像素点,将每个像素点的当前RGB数据与期望RGB数据一一比较,得出整个页面中的像素点匹配合格率,当匹配合格率大于预设匹配合格率时,认为当前渲染的页面符合预期,得到图形渲染类应用程序编程接口通过测试的测试结果。
207、分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
在一实施例中,对待测试应用程序编程接口的测试结果进行分析,若待测试应用程序编程接口通过测试,则认为该待测试应用程序编程接口满足预设条件;若待测试应用程序编程接口未通过测试,则认为该待测试应用程序编程接口不满足预设条件。
或者,对同一待测试应用程序编程接口进行多次测试,当待测试应用程序编程接口通过测试的次数在总测试次数中的占比大于预设占比时,认为该待测试应用程序编程接口满足预设条件;反之,则认为该待测试应用程序编程接口不满足预设条件。例如,设定预设占比为95%,如果同一待测试应用程序编程接口进行了100次测试,若通过测试的次数大于95次,则认为该待测试应用程序编程接口满足预设条件;若通过测试的次数小于或等于95次,则认为该待测试应用程序编程接口不满足预设条件。
当分析出待测试应用程序编程接口是否满足预设条件后,将分析结果进行上报。
本申请实施例还提供一种游戏引擎测试装置。请参照图5,图5为本申请实施例提供的游戏引擎测试装置的结构示意图。其中该游戏引擎测试装置300可应用于电子设备,该游戏引擎测试装置包括运行模块301、测试模块302、获取模块303以及分析模块304,如下:
运行模块301,用于启动游戏引擎,通过游戏引擎运行预设的测试框架;
测试模块302,用于通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试;
获取模块303,用于获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果;
分析模块304,用于分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
请一并参阅图6,在一实施例中,测试模块302包括识别单元3021、创建单元3022和渲染单元3023。
识别单元3021,用于识别测试用例中的测试步骤是否用于测试图形渲染类应用程序编程接口;
创建单元3022,用于若识别除测试用例中的测试步骤用于测试图形渲染类应用程序编程接口,则通过测试框架创建图形渲染类应用程序编程接口的对应页面;
渲染单元3023,用于通过测试框架调用图形渲染类应用程序编程接口,在图形渲染类应用程序编程接口的对应页面中完成渲染。
请继续参阅图6,在一实施例中,获取模块303包括获取单元3031、判断单元3032和结果单元3033。
获取单元3031,用于获取图形渲染类应用程序编程接口的对应页面上像素点的色彩数据;
判断单元3032,用于判断色彩数据是否与期望色彩数据匹配;
结果单元3033,用于若判断出色彩数据与期望色彩数据匹配,则得到图形渲染类应用程序编程接口通过测试的测试结果。
其中,在判断色彩数据是否与期望色彩数据匹配时,判断单元3032用于:
获取色彩数据与期望色彩数据的差值;
判断色彩数据与期望色彩数据的差值是否在预设范围内;
若是,则判定色彩数据是否与期望色彩数据相匹配。
请一并参阅图7,在一实施例中,游戏引擎测试装置300还包括搭建模块305、打包模块306和运行模块307:
搭建模块305,用于搭建测试框架;
打包模块306,用于获取测试框架的代码,并将测试框架的代码打包成可执行文件;
运行模块307,用于运行可执行文件以启动游戏引擎。
请继续参阅图7,在一实施例中,游戏引擎测试装置300还包括清除模块308和响应模块309:
清除模块308,用于清除测试用例执行过程中的中间文件;
响应模块309,用于当测试用例调用应用程序编程接口的过程中存在界面交互请求时,通过超文本传输协议连接预设服务器,以响应界面交互请求。
应当说明的是,本申请实施例提供的游戏引擎测试装置与上文实施例中的游戏引擎测试方法属于同一构思,在游戏引擎测试装置上可以运行游戏引擎测试方法实施例中提供的任一方法,其具体实现过程详见游戏引擎测试方法实施例,此处不再赘述。
本申请实施例提供一种计算机可读的存储介质,其上存储有计算机程序,当计算机程序被处理器调用时,使得处理器执行如本申请实施例提供的游戏引擎测试方法中的步骤。其中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM,)或者随机存取器(Random Access Memory,RAM)等。
本申请实施例还提供一种电子设备,请参照图8,图8为本申请实施例提供的电子设备的一结构示意图。电子设备包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
处理器401是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能并处理数据。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
在本申请实施例中,电子设备中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401运行存储在存储器402中的计算机程序,从而实现各种功能,如下:
启动游戏引擎,通过游戏引擎运行预设的测试框架;
通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试;
获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果;
分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
请参照图9,图9为本申请实施例提供的电子设备的另一结构示意图,与图9所示电子设备的区别在于,电子设备还包括输入单元403和输出单元404等组件。
其中,输入单元403可用于接收输入的数字、字符信息、声音或用户特征信息(比如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、声音信号、光学或者轨迹球信号输入等。
输出单元404可用于展示由用户输入的信息或提供给用户的信息,如屏幕、录音等。
在本申请实施例中,电子设备中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401运行存储在存储器402中的计算机程序,从而实现各种功能,如下:
启动游戏引擎,通过游戏引擎运行预设的测试框架;
通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试;
获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果;
分析测试结果以确定待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
在一实施例中,在通过测试框架调用游戏引擎中的待测试应用程序编程接口执行测试用例,以对待测试应用程序编程接口进行测试时,处理器401还执行:
识别测试用例中的测试步骤是否用于测试图形渲染类应用程序编程接口;
若是,则通过测试框架创建图形渲染类应用程序编程接口的对应页面;
通过测试框架调用图形渲染类应用程序编程接口,在图形渲染类应用程序编程接口的对应页面中完成渲染。
在一实施例中,在获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果时,处理器401还执行:
获取图形渲染类应用程序编程接口的对应页面上像素点的色彩数据;
判断色彩数据是否与期望色彩数据匹配;
若是,则得到图形渲染类应用程序编程接口通过测试的测试结果。
在一实施例中,在启动游戏引擎之前,处理器401还执行:
搭建测试框架;
获取测试框架的代码,并将测试框架的代码打包成可执行文件;
运行可执行文件以启动游戏引擎。
在一实施例中,在获取待测试应用程序编程接口的调用结果,根据调用结果得到测试结果之后,处理器401还执行:清除测试用例执行过程中的中间文件。
在一实施例中,处理器401还执行:当测试用例调用应用程序编程接口的过程中存在界面交互请求时,通过超文本传输协议连接预设服务器,以响应界面交互请求。
应当说明的是,本申请实施例提供的电子设备与上文实施例中的游戏引擎测试方法属于同一构思,在电子设备上可以运行游戏引擎测试方法实施例中提供的任一方法,其具体实现过程详见特征提取方法实施例,此处不再赘述。
需要说明的是,对本申请实施例的游戏引擎测试方法而言,本领域普通测试人员可以理解实现本申请实施例的游戏引擎测试方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如游戏引擎测试方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的游戏引擎测试装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种游戏引擎测试方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种游戏引擎测试方法,其特征在于,包括:
启动游戏引擎,通过所述游戏引擎运行预设的测试框架;
通过所述测试框架调用所述游戏引擎中的待测试应用程序编程接口执行测试用例,以对所述待测试应用程序编程接口进行测试;
获取所述待测试应用程序编程接口的调用结果,根据所述调用结果得到测试结果;
分析所述测试结果以确定所述待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
2.根据权利要求1所述的游戏引擎测试方法,其特征在于,所述通过所述测试框架调用所述游戏引擎中的待测试应用程序编程接口执行测试用例,以对所述待测试应用程序编程接口进行测试包括:
识别所述测试用例中的测试步骤是否用于测试图形渲染类应用程序编程接口;
若是,则通过所述测试框架创建所述图形渲染类应用程序编程接口的对应页面;
通过所述测试框架调用所述图形渲染类应用程序编程接口,在所述图形渲染类应用程序编程接口的对应页面中完成渲染。
3.根据权利要求2所述的游戏引擎测试方法,其特征在于,所述获取所述待测试应用程序编程接口的调用结果,根据所述调用结果得到测试结果包括:
获取所述图形渲染类应用程序编程接口的对应页面上像素点的色彩数据;
判断所述色彩数据是否与期望色彩数据匹配;
若是,则得到所述图形渲染类应用程序编程接口通过测试的测试结果。
4.根据权利要求3所述的游戏引擎测试方法,其特征在于,所述判断所述色彩数据是否与期望色彩数据匹配包括:
获取所述色彩数据与期望色彩数据的差值;
判断所述色彩数据与期望色彩数据的差值是否在预设范围内;
若是,则判定所述色彩数据是否与期望色彩数据相匹配。
5.根据权利要求1至4任一项所述的游戏引擎测试方法,其特征在于,所述启动游戏引擎之前,还包括:
搭建所述测试框架;
获取所述测试框架的代码,并将所述测试框架的代码打包成可执行文件;
运行所述可执行文件以启动游戏引擎。
6.根据权利要求1至4任一项所述的游戏引擎测试方法,其特征在于,所述获取所述待测试应用程序编程接口的调用结果,根据所述调用结果得到测试结果之后,还包括:
清除所述测试用例执行过程中的中间文件。
7.根据权利要求1至4任一项所述的游戏引擎测试方法,其特征在于,所述方法还包括:
当所述测试用例调用应用程序编程接口的过程中存在界面交互请求时,通过超文本传输协议连接预设服务器,以响应所述界面交互请求。
8.一种游戏引擎测试装置,其特征在于,包括:
运行模块,用于启动游戏引擎,通过所述游戏引擎运行预设的测试框架;
测试模块,用于通过所述测试框架调用所述游戏引擎中的待测试应用程序编程接口执行测试用例,以对所述待测试应用程序编程接口进行测试;
获取模块,用于获取所述待测试应用程序编程接口的调用结果,根据所述调用结果得到测试结果;
分析模块,用于分析所述测试结果以确定所述待测试应用程序编程接口是否满足预设条件,并将分析结果进行上报。
9.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被处理器调用时,使得所述处理器执行如权利要求1至7任一项所述的游戏引擎测试方法。
10.一种电子设备,包括处理器和存储器,所述存储器储存有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至7任一项所述的游戏引擎测试方法。
CN201910727284.7A 2019-08-07 2019-08-07 游戏引擎测试方法、装置、存储介质及电子设备 Pending CN110457218A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910727284.7A CN110457218A (zh) 2019-08-07 2019-08-07 游戏引擎测试方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910727284.7A CN110457218A (zh) 2019-08-07 2019-08-07 游戏引擎测试方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN110457218A true CN110457218A (zh) 2019-11-15

Family

ID=68485383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910727284.7A Pending CN110457218A (zh) 2019-08-07 2019-08-07 游戏引擎测试方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN110457218A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908909A (zh) * 2019-11-21 2020-03-24 望海康信(北京)科技股份公司 自动化测试方法、装置、存储介质及设备
CN110968519A (zh) * 2019-12-23 2020-04-07 上海米哈游天命科技有限公司 一种游戏测试方法、装置、服务器及存储介质
CN111179400A (zh) * 2019-12-27 2020-05-19 珠海随变科技有限公司 渲染方式优化方法、装置、设备及存储介质
CN112100065A (zh) * 2020-09-08 2020-12-18 完美世界(重庆)互动科技有限公司 游戏场景数据的处理方法、装置及设备
CN112765041A (zh) * 2021-02-04 2021-05-07 上海硬通网络科技有限公司 游戏自动化测试方法、装置及电子设备
CN113360406A (zh) * 2021-07-01 2021-09-07 上海哔哩哔哩科技有限公司 应用程序的JSBridge方法的测试方法及装置
CN113680068A (zh) * 2021-07-23 2021-11-23 广州三七互娱科技有限公司 游戏开发引擎和Docker的交互方法、设备和系统
WO2022184112A1 (zh) * 2021-03-05 2022-09-09 粒界(上海)信息科技有限公司 安卓系统的应用调试方法、装置、程序、介质及电子设备
CN116225942A (zh) * 2023-03-08 2023-06-06 深圳指尖互娱科技有限公司 基于运行分析的游戏引擎开发测试系统
WO2023142434A1 (zh) * 2022-01-27 2023-08-03 深圳市慧鲤科技有限公司 渲染引擎的测试方法及装置、设备、系统、存储介质、计算机程序、计算机程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819487A (zh) * 2011-06-10 2012-12-12 腾讯科技(深圳)有限公司 对网络游戏进行测试的方法和装置
CN106713571A (zh) * 2015-08-20 2017-05-24 广州爱九游信息技术有限公司 一种测试游戏引擎应用的性能的移动终端及方法
CN108255729A (zh) * 2018-01-24 2018-07-06 珠海金山网络游戏科技有限公司 一种基于Unity平台的手机游戏自动化测试方法和系统
CN109857649A (zh) * 2019-01-14 2019-06-07 珠海金山网络游戏科技有限公司 一种资源测试方法及系统
CN110013672A (zh) * 2019-04-19 2019-07-16 腾讯科技(成都)有限公司 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质
CN110083541A (zh) * 2019-04-30 2019-08-02 网易(杭州)网络有限公司 游戏测试方法、装置、计算机存储介质和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819487A (zh) * 2011-06-10 2012-12-12 腾讯科技(深圳)有限公司 对网络游戏进行测试的方法和装置
CN106713571A (zh) * 2015-08-20 2017-05-24 广州爱九游信息技术有限公司 一种测试游戏引擎应用的性能的移动终端及方法
CN108255729A (zh) * 2018-01-24 2018-07-06 珠海金山网络游戏科技有限公司 一种基于Unity平台的手机游戏自动化测试方法和系统
CN109857649A (zh) * 2019-01-14 2019-06-07 珠海金山网络游戏科技有限公司 一种资源测试方法及系统
CN110013672A (zh) * 2019-04-19 2019-07-16 腾讯科技(成都)有限公司 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质
CN110083541A (zh) * 2019-04-30 2019-08-02 网易(杭州)网络有限公司 游戏测试方法、装置、计算机存储介质和电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
蓝贤赟: "《Neox引擎手机游戏通用场景性能测试平台的设计与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
蓝贤赟: "《Neox引擎手机游戏通用场景性能测试平台的设计与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2017, 15 February 2017 (2017-02-15), pages 3 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908909A (zh) * 2019-11-21 2020-03-24 望海康信(北京)科技股份公司 自动化测试方法、装置、存储介质及设备
CN110908909B (zh) * 2019-11-21 2023-09-22 望海康信(北京)科技股份公司 自动化测试方法、装置、存储介质及设备
CN110968519A (zh) * 2019-12-23 2020-04-07 上海米哈游天命科技有限公司 一种游戏测试方法、装置、服务器及存储介质
CN111179400A (zh) * 2019-12-27 2020-05-19 珠海随变科技有限公司 渲染方式优化方法、装置、设备及存储介质
CN111179400B (zh) * 2019-12-27 2021-02-19 珠海必要工业科技股份有限公司 渲染方式优化方法、装置、设备及存储介质
CN112100065A (zh) * 2020-09-08 2020-12-18 完美世界(重庆)互动科技有限公司 游戏场景数据的处理方法、装置及设备
CN112765041A (zh) * 2021-02-04 2021-05-07 上海硬通网络科技有限公司 游戏自动化测试方法、装置及电子设备
CN112765041B (zh) * 2021-02-04 2024-04-05 上海硬通网络科技有限公司 游戏自动化测试方法、装置及电子设备
WO2022184112A1 (zh) * 2021-03-05 2022-09-09 粒界(上海)信息科技有限公司 安卓系统的应用调试方法、装置、程序、介质及电子设备
CN113360406B (zh) * 2021-07-01 2022-08-02 上海哔哩哔哩科技有限公司 应用程序的JSBridge方法的测试方法及装置
CN113360406A (zh) * 2021-07-01 2021-09-07 上海哔哩哔哩科技有限公司 应用程序的JSBridge方法的测试方法及装置
CN113680068A (zh) * 2021-07-23 2021-11-23 广州三七互娱科技有限公司 游戏开发引擎和Docker的交互方法、设备和系统
WO2023142434A1 (zh) * 2022-01-27 2023-08-03 深圳市慧鲤科技有限公司 渲染引擎的测试方法及装置、设备、系统、存储介质、计算机程序、计算机程序产品
CN116225942A (zh) * 2023-03-08 2023-06-06 深圳指尖互娱科技有限公司 基于运行分析的游戏引擎开发测试系统
CN116225942B (zh) * 2023-03-08 2023-11-10 深圳指尖互娱科技有限公司 基于运行分析的游戏引擎开发测试系统

Similar Documents

Publication Publication Date Title
CN110457218A (zh) 游戏引擎测试方法、装置、存储介质及电子设备
CN109508298B (zh) 图形化的脚本测试方法及系统
CN105468529B (zh) 一种安卓应用ui控件精准遍历方法和装置
CN111124919A (zh) 一种用户界面的测试方法、装置、设备及存储介质
CN112732576B (zh) 基于用户界面的自动化测试方法、装置及设备
CN108874649B (zh) 自动化测试脚本的生成方法、装置及其计算机设备
Kelly et al. Scientific software testing: Analysis with four dimensions
CN112882930B (zh) 自动化测试方法、装置、存储介质及电子设备
US11663113B2 (en) Real time fault localization using combinatorial test design techniques and test case priority selection
CN115080135A (zh) 一种基于gui实现bios远程自动化控制的系统
CN114238134A (zh) 一种测试结果展示方法、装置、设备及存储介质
CN116166525A (zh) 一种测试脚本的生成方法及装置
CN115525563A (zh) 一种测试方法、装置、计算机设备和存储介质
CN117235527A (zh) 端到端容器化的大数据模型构建方法、装置、设备及介质
CN117076316A (zh) 车载应用测试方法、系统、电子设备及存储介质
CN117215661A (zh) 一种事件处理的方法、装置以及存储介质
CN108733566A (zh) 一种基于python的虚拟化系统自动化测试系统及方法
CN114090459A (zh) 基于微内核的测试系统和测试方法
CN114880239A (zh) 一种基于数据驱动的接口自动化测试框架及方法
CN110020552B (zh) 一种基于有限状态自动机的Android应用跨组件污点数据流拼接方法
CN111949510B (zh) 测试处理方法、装置、电子设备及可读存储介质
CN112579431A (zh) 一种基于图像识别的跨平台脚本录制与回放方法
CN112328281A (zh) 一种服务器固件刷新方法和装置
CN109582564A (zh) 一种移动应用软件的测试方法
CN116383095B (zh) 基于rpa机器人的冒烟测试方法、系统和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination