在射击类游戏中,不可避免地需要对各种枪械武器进行测试。大多数情况下,枪械种类繁多,人工遍历测试会花非常多的时间,因此引入自动化测试替代人力执行部分冒烟用例,能够增加严重问题提早发现的可能性。枪械测试包括基础行为、伤害、弹道、后坐力等方面,从功能冒烟的角度考虑,基础行为和伤害是需要优先覆盖的部分。因此,本文以UE4引擎下的枪械测试为例,讲解基础行为跟伤害测试的一些设计。

对于枪械的基础行为测试,我们可以分为以下几种测试场景:

  • 装备武器

    • 切换到特定ID的武器,能正常卸下原来的,装备上新的
  • 射击行为
    • 正常开镜射击&关镜
    • 根据枪械类型的不同,能够正常执行单发/三发点射/全自动射击
    • 蹲下、移动、跳跃射击正常
    • 子弹正常消耗
  • 装填弹药
    • 手动装填,子弹数量正常
    • 打完弹夹的子弹自动装填,子弹数量正常
  • 补充弹药
    • 利用道具或者走到特定的区域,触发弹药补充效果,补充数量正常

针对射击、开镜、移动、装填弹药等行为,因为在游戏中理应会有特定的快捷键绑定,所以在UE4引擎中可以直接调用对应的input逻辑来触发这些行为。

针对子弹数量是否正常的校验,需要了解的是不同的武器需要共同抽象出一些数据model逻辑(这块可以称之为”虚拟武器实例“),子弹数量的计算肯定也会放在内,因此可以通过获取这里面的数据来检查执行行为的前后,弹夹内以及备弹数量是否正常消耗或增加。

类似补充弹药等可能和其它功能模块耦合的行为,实现上就需要结合其他系统的内容,自己抽象一套逻辑了

针对伤害测试,主要的测试场景如下:

  • 伤害类型

    • 普通伤害
    • 暴击伤害
  • 伤害效果
    • 血量正常减少,与飘字相符
    • 特定的伤害,会产生特定的buff

针对伤害类型,主要看的是普通伤害和暴击伤害,暴击伤害的值需要比普通伤害的高。暴击的实现,假设是爆头的话,可以尝试获取射击对象的SkeletalMesh组件,然后头部socket的当前位置,然后通过rotate的接口使得角色能够朝向并瞄准到射击对象的头部。

针对伤害效果,需要注意的是如果是网游的话,客户端和服务器可能会分开独立计算伤害。客户端伤害数值的表现是飘字,可以通过hook飘字的接口来获取特定设计对象的伤害数据;服务端伤害数值的表现则是射击前后HP的减少。最后需要检测的就是,客户端飘字和服务器里HP减少的量相符。

【测试人生】UE4游戏枪械自动化测试的一些设计相关推荐

  1. 游戏测试专题,从零开始的自动化测试框架

    在传统游戏测试中,主要分为两种方向的测试.一种是功能测试,即通过手工跑游戏的方式来验证功能的正确性.而另外一种是自动化测试,也就是测试开发,可以通过跟代码相结合的方式保证产品质量和测试效率,比如做一些 ...

  2. 游戏 UI 自动化测试方案 Airtest Project

    谷歌发布了一款由网易研发的游戏 UI 自动化测试方案:Airtest Project.谷歌方面表示 Airtest 是安卓游戏开发最强大.最全面的自动测试方案之一. 从 Airtest 官网上可以看到 ...

  3. 测试人生 | 为了娃的奶粉钱,测试媛妈妈拿出考研的拼劲,半年终圆大厂梦!

    不狠狠逼自己一把,你都不知道自己自律起来有多强大.也许这就是个人学习和成长的本质吧! 本期「测试人生」栏目,我们邀请到霍格沃兹测试学院的@S同学分享她作为测试媛妈妈为娃拼搏,半年圆梦大厂的故事. 本人 ...

  4. 测试人生 | 为了娃的奶粉钱,测试媛妈妈拿出考研的拼劲,半年终圆大厂梦

    原文链接 不狠狠逼自己一把,你都不知道自己自律起来有多强大.也许这就是个人学习和成长的本质吧! 本期「测试人生」栏目,我们邀请到霍格沃兹测试学院的@S同学分享她作为测试媛妈妈为娃拼搏,半年圆梦大厂的故 ...

  5. 做了5年软件测试,对游戏UI自动化测试的一些理解和认识

    前言 对于目前的两大游戏引擎cocos-2dx.unity3D,其UI自动化测试的技术方案都已经实现.可以获取.设置UI对象的各个属性,并且可以调用UI对象及引擎的一些方法接口,实现基于引擎的UI驱动 ...

  6. 测试人生 | 阿里实习 90 天:从实习生的视角谈谈个人成长

    今天是我到阿里实习的第 90 天了,最近也拜读了不少前辈的文章,让我有种醍醐灌顶的感觉. 回顾这 90 天的成长,感慨良多,在这里和大家做一下分享,也从实习生的视角,尤其是本科毕业就参加工作的同学的视 ...

  7. 软件测试 | 测试开发 | 测试人生 | 突破“大专学历+半路转行”标签,从拉垮菜鸟到测试团队骨干,走到这一步很知足!

    编者按:本文是霍格沃兹测试学院学员@XiaoW分享的测试人生故事,作为学习群阳光活跃的"学习小王子",背后竟有如此曲折和令人钦佩的经历,这种积极向上的力量极具感染力,也发人深省,当 ...

  8. 测试人生 | 专科学历入职世界500强企业,二线城市年薪超30W,这个80后小哥哥很赞!

    本文为霍格沃兹测试学院优秀学员跳槽笔记,测试开发进阶学习文末加群. 这篇文章是写给想在测试行业或者转行做测试行业的小伙伴的.我将叙述如何从0到1转行到测试行业并入职世界500强企业.先交待一下我的背景 ...

  9. 测试人生 | 专科学历入职世界500强企业,二线城市年薪超30W,这个80后小哥哥很赞

    本文为霍格沃兹测试学院优秀学员跳槽笔记,测试开发进阶学习文末加群. 这篇文章是写给想在测试行业或者转行做测试行业的小伙伴的.我将叙述如何从0到1转行到测试行业并入职世界500强企业.先交待一下我的背景 ...

最新文章

  1. _findnext()调试中断,发生访问错误,错误定位到ntdll.dll
  2. 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
  3. 轻松实现远程批量拷贝文件脚本(女学生作品)
  4. JavaScript栈的实现
  5. 您的日志就是您的数据:logstash + elasticsearch
  6. 发现2017年最好的CSS框架
  7. linux查看一小时之内的日志,linux – 在[timespan]内(例如最后一小时)查找日志文件中的条目...
  8. 计算机盐城工学院和常熟理工,【选专业】这6所二本院校的专业,就业不输一本学生!...
  9. vant表单点击提交没有触发验证_jquery.validate不用submit提交,用js提交的,怎么触发验证啊?...
  10. java c 事件对比_javacsript绑定事件的三种方式与各自特点
  11. CentOS+Subversion 配置Linux 下 SVN服务器
  12. MATLAB学习笔记之chirp信号的产生
  13. 后端程序员必会:并发情况下redis-lua保证原子操作
  14. caj转word是怎么进行转换的
  15. 【修真院web小课堂】如何理解html结构的语义化
  16. 计算机网络发展的第四阶段特点,计算机网络基础考试重点.doc
  17. 计算机教师课改先进个人,基础教育课程改革工作先进个人事迹
  18. c++编程题 袋鼠过河
  19. 考研政治(一)马克思原理
  20. Mysterious Organization

热门文章

  1. 画论50 唐志契《绘画微言》
  2. + 网站项目计划书 (二):网站项目建设流程概述
  3. “想到以后不能和你在一起”
  4. 最新历史版本 :H.265
  5. 利用ffmpeg进行音频转码
  6. 程序员表白代码,爱心加玫瑰花
  7. PHP之序列化与反序列化(session反序列化篇)
  8. 中国个人品牌顶尖权威恒洋老师的三句话,让我不再迷茫
  9. Arduino+esp8266+1.3寸TFT屏(st7789驱动)显示图片教程
  10. 【IoT】产品设计:Flash芯片选型 W25Q128 不同后缀区别(W25Q128FV / W25Q128JV )