【游戏】测试开发中的一些工具整理(一)

简介: 在经历了多个项目后,发现总是会有一些工具会被重复开发。不同项目的流程不尽相同,在工具的需求上总会有一些变化。所以在开发工具的时候就需要适当的预留一些可扩展的接口,方便工具复用和适应变化。因此我准备将曾经开发过的一些工具进行整理记录在此,方便以后查阅。一、导表工具 游戏项目的配置数据(产品数据)基本上都是通过Excel进行配置,然后使用工具导出为lua,json,xml等格式的文本文件,然后供客户端和服务端读取使用。正如刚开始所说的那样,由于不同项目对配置文件的格式需求不太一样,因此必须开发适合的导出配置工具。

【游戏】测试开发中的一些工具整理(一)


   在经历了多个项目后,发现总是会有一些工具会被重复开发。不同项目的流程不尽相同,在工具的需求上总会有一些变化。所以在开发工具的时候就需要适当的预留一些可扩展的接口,方便工具复用和适应变化。因此我准备将曾经开发过的一些工具进行整理记录在此,方便以后查阅。


一、导表工具


   游戏项目的配置数据(产品数据)基本上都是通过Excel进行配置,然后使用工具导出为lua,json,xml等格式的文本文件,然后供客户端和服务端读取使用。正如刚开始所说的那样,由于不同项目对配置文件的格式需求不太一样,因此必须开发适合的导出配置工具。


微信截图_20220423231901.png


   工具开发方式和语言使用有很多的选择,例如vba,python,c#等等。下面是Python使用xlrd库打开Excel表进行导出配置文件的伪代码。


workbook= xlrd.open_workbook("配置表.xls")# 操作excel
sheet = workbook.sheet_by_index(0) #根据下标获取对应的sheet表
for i in range(1, sheet.nrows):
    for j in range(1, sheet.ncols):# 每一行的数据数
      value_cell = sheet.cell(i,j).value
#按照规则就可以将下图的数据导出


640.png


    工具的开发难度相对不高,但是如果可以增加一些额外的设计考虑,其实重复的利用率会很高,下面就简单的罗列一下我的一些想法。


   1.输入输出模块独立


      将输入模块和输出模块与工具本体解耦,这样可以在工具自身处理逻辑不变的情况下,通过小的变动在不同项目中适应。假设输入模块从Excel换成其他的文件,只需要将这种格式的文件数据转换输出为工具可以识别的输入格式即可。输出模块的变化也是同理,这样定义好标准的数据格式后,即可增加特定插件模块完成融合。


   2.导出检查


      数据导出前先通过编写的检查脚本进行数据检查,这样可以很大程度减少错误数据的提交情况,提高数据的质量。脚本可以单独编写,然后通过配置文件关联到对应的数据表上,导出前执行一次。


   3.SVN接口利用


      导表工具可以接入SVN相关的接口,例如显示全部配置表的状态(修改,删除,锁定),增加快速锁定和解锁的接口。GUI化的导表工具可以在界面上展示这个表是否被其他人修改,被谁锁定。实时的状态展示可以减少多人协作中的冲突问题。


  4.多人合作的另一个想法


       这个想法还没实现,但是应该还是有实现的价值的,就是将配置数据的工作通过网络来进行协作。例如开发一个GUI的Excel在线编辑工具,多人进行编辑时可以实时同步给其他人修改的位置和数据(Office 365不知道能否满足这个需求)。再将上面的SVN和数据检查全部接入,这样一个导表工具应该有价值吧?!


二、SVN提交钩子pre_commit


   利用SVN的钩子脚本可以做一些额外的项目版本管理。pre_commit钩子可以获取正在提交的内容,包含备注和提交的文件列表,然后我们可以做一些提交限制。最常见的应该是提交没有写备注时不允许提交,见下面的代码(来源网上)。


@echo off
set REPOS=%1
set TXN=%2
svnlook log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo 提交信息(备注)不允许为空,请填写信息后重试 1>&2
exit 1


   其实我们还可以做更多的限制,例如某些目录不可提交;限制某个时间段不可提交;限制提交的内容必须包含的内容。我们可以在这个钩子脚本里面调用我们写的其他脚本,然后将提交的内容定向到我们的检查工具中进行验证提交。


REPOS="$1"
TXN="$2"
commit_log=$(svnlook log $REPOS -t $TXN)
commit_author=$(svnlook author $REPOS -t $TXN)
commit_files=$(svnlook changed $REPOS -t $TXN)
#我们自己的脚本里面决定本次提交是否允许
my_check_script "$commit_log" "$commit_author" "$commit_files"


未完待续~,后续会继续带来其他的工具记录。


欢迎微信搜索"游戏测试开发"关注一起沟通交流。


相关文章
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
24天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
144 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
44 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
2月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
50 2
|
2月前
|
监控 测试技术 开发工具
移动端性能测试工具
移动端性能测试工具
54 2
|
2月前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
2月前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
214 2
|
2月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
2月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
116 1
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。