【测试人生】UE4游戏枪械自动化测试的一些设计
在射击类游戏中,不可避免地需要对各种枪械武器进行测试。大多数情况下,枪械种类繁多,人工遍历测试会花非常多的时间,因此引入自动化测试替代人力执行部分冒烟用例,能够增加严重问题提早发现的可能性。枪械测试包括基础行为、伤害、弹道、后坐力等方面,从功能冒烟的角度考虑,基础行为和伤害是需要优先覆盖的部分。因此,本文以UE4引擎下的枪械测试为例,讲解基础行为跟伤害测试的一些设计。
对于枪械的基础行为测试,我们可以分为以下几种测试场景:
- 装备武器
- 切换到特定ID的武器,能正常卸下原来的,装备上新的
- 射击行为
- 正常开镜射击&关镜
- 根据枪械类型的不同,能够正常执行单发/三发点射/全自动射击
- 蹲下、移动、跳跃射击正常
- 子弹正常消耗
- 装填弹药
- 手动装填,子弹数量正常
- 打完弹夹的子弹自动装填,子弹数量正常
- 补充弹药
- 利用道具或者走到特定的区域,触发弹药补充效果,补充数量正常
针对射击、开镜、移动、装填弹药等行为,因为在游戏中理应会有特定的快捷键绑定,所以在UE4引擎中可以直接调用对应的input逻辑来触发这些行为。
针对子弹数量是否正常的校验,需要了解的是不同的武器需要共同抽象出一些数据model逻辑(这块可以称之为”虚拟武器实例“),子弹数量的计算肯定也会放在内,因此可以通过获取这里面的数据来检查执行行为的前后,弹夹内以及备弹数量是否正常消耗或增加。
类似补充弹药等可能和其它功能模块耦合的行为,实现上就需要结合其他系统的内容,自己抽象一套逻辑了
针对伤害测试,主要的测试场景如下:
- 伤害类型
- 普通伤害
- 暴击伤害
- 伤害效果
- 血量正常减少,与飘字相符
- 特定的伤害,会产生特定的buff
针对伤害类型,主要看的是普通伤害和暴击伤害,暴击伤害的值需要比普通伤害的高。暴击的实现,假设是爆头的话,可以尝试获取射击对象的SkeletalMesh组件,然后头部socket的当前位置,然后通过rotate的接口使得角色能够朝向并瞄准到射击对象的头部。
针对伤害效果,需要注意的是如果是网游的话,客户端和服务器可能会分开独立计算伤害。客户端伤害数值的表现是飘字,可以通过hook飘字的接口来获取特定设计对象的伤害数据;服务端伤害数值的表现则是射击前后HP的减少。最后需要检测的就是,客户端飘字和服务器里HP减少的量相符。
【测试人生】UE4游戏枪械自动化测试的一些设计相关推荐
- 游戏测试专题,从零开始的自动化测试框架
在传统游戏测试中,主要分为两种方向的测试.一种是功能测试,即通过手工跑游戏的方式来验证功能的正确性.而另外一种是自动化测试,也就是测试开发,可以通过跟代码相结合的方式保证产品质量和测试效率,比如做一些 ...
- 游戏 UI 自动化测试方案 Airtest Project
谷歌发布了一款由网易研发的游戏 UI 自动化测试方案:Airtest Project.谷歌方面表示 Airtest 是安卓游戏开发最强大.最全面的自动测试方案之一. 从 Airtest 官网上可以看到 ...
- 测试人生 | 为了娃的奶粉钱,测试媛妈妈拿出考研的拼劲,半年终圆大厂梦!
不狠狠逼自己一把,你都不知道自己自律起来有多强大.也许这就是个人学习和成长的本质吧! 本期「测试人生」栏目,我们邀请到霍格沃兹测试学院的@S同学分享她作为测试媛妈妈为娃拼搏,半年圆梦大厂的故事. 本人 ...
- 测试人生 | 为了娃的奶粉钱,测试媛妈妈拿出考研的拼劲,半年终圆大厂梦
原文链接 不狠狠逼自己一把,你都不知道自己自律起来有多强大.也许这就是个人学习和成长的本质吧! 本期「测试人生」栏目,我们邀请到霍格沃兹测试学院的@S同学分享她作为测试媛妈妈为娃拼搏,半年圆梦大厂的故 ...
- 做了5年软件测试,对游戏UI自动化测试的一些理解和认识
前言 对于目前的两大游戏引擎cocos-2dx.unity3D,其UI自动化测试的技术方案都已经实现.可以获取.设置UI对象的各个属性,并且可以调用UI对象及引擎的一些方法接口,实现基于引擎的UI驱动 ...
- 测试人生 | 阿里实习 90 天:从实习生的视角谈谈个人成长
今天是我到阿里实习的第 90 天了,最近也拜读了不少前辈的文章,让我有种醍醐灌顶的感觉. 回顾这 90 天的成长,感慨良多,在这里和大家做一下分享,也从实习生的视角,尤其是本科毕业就参加工作的同学的视 ...
- 软件测试 | 测试开发 | 测试人生 | 突破“大专学历+半路转行”标签,从拉垮菜鸟到测试团队骨干,走到这一步很知足!
编者按:本文是霍格沃兹测试学院学员@XiaoW分享的测试人生故事,作为学习群阳光活跃的"学习小王子",背后竟有如此曲折和令人钦佩的经历,这种积极向上的力量极具感染力,也发人深省,当 ...
- 测试人生 | 专科学历入职世界500强企业,二线城市年薪超30W,这个80后小哥哥很赞!
本文为霍格沃兹测试学院优秀学员跳槽笔记,测试开发进阶学习文末加群. 这篇文章是写给想在测试行业或者转行做测试行业的小伙伴的.我将叙述如何从0到1转行到测试行业并入职世界500强企业.先交待一下我的背景 ...
- 测试人生 | 专科学历入职世界500强企业,二线城市年薪超30W,这个80后小哥哥很赞
本文为霍格沃兹测试学院优秀学员跳槽笔记,测试开发进阶学习文末加群. 这篇文章是写给想在测试行业或者转行做测试行业的小伙伴的.我将叙述如何从0到1转行到测试行业并入职世界500强企业.先交待一下我的背景 ...
最新文章
- _findnext()调试中断,发生访问错误,错误定位到ntdll.dll
- 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
- 轻松实现远程批量拷贝文件脚本(女学生作品)
- JavaScript栈的实现
- 您的日志就是您的数据:logstash + elasticsearch
- 发现2017年最好的CSS框架
- linux查看一小时之内的日志,linux – 在[timespan]内(例如最后一小时)查找日志文件中的条目...
- 计算机盐城工学院和常熟理工,【选专业】这6所二本院校的专业,就业不输一本学生!...
- vant表单点击提交没有触发验证_jquery.validate不用submit提交,用js提交的,怎么触发验证啊?...
- java c 事件对比_javacsript绑定事件的三种方式与各自特点
- CentOS+Subversion 配置Linux 下 SVN服务器
- MATLAB学习笔记之chirp信号的产生
- 后端程序员必会:并发情况下redis-lua保证原子操作
- caj转word是怎么进行转换的
- 【修真院web小课堂】如何理解html结构的语义化
- 计算机网络发展的第四阶段特点,计算机网络基础考试重点.doc
- 计算机教师课改先进个人,基础教育课程改革工作先进个人事迹
- c++编程题 袋鼠过河
- 考研政治(一)马克思原理
- Mysterious Organization
热门文章
- 画论50 唐志契《绘画微言》
- + 网站项目计划书 (二):网站项目建设流程概述
- “想到以后不能和你在一起”
- 最新历史版本 :H.265
- 利用ffmpeg进行音频转码
- 程序员表白代码,爱心加玫瑰花
- PHP之序列化与反序列化(session反序列化篇)
- 中国个人品牌顶尖权威恒洋老师的三句话,让我不再迷茫
- Arduino+esp8266+1.3寸TFT屏(st7789驱动)显示图片教程
- 【IoT】产品设计:Flash芯片选型 W25Q128 不同后缀区别(W25Q128FV / W25Q128JV )