目前两大游戏引擎cocos-2dx和unity3D已经实现了UI自动化测试的技术方案。 可以获取和设置UI对象的各种属性,可以调用UI对象和引擎的一些方法接口,实现基于引擎的UI驱动能力。 有了这些能力,技术上就可以实现基于引擎的游戏UI自动化测试。 但是单纯的 UI 驱动能力还不足以实现游戏的 UI 自动化测试。
UI自动化测试一般需要满足几个条件:UI比较稳定,运行过程和结果可预测,产品生命周期长。
UI比较稳定:
这意味着 UI 元素和布局在不同版本之间变化不大,每个 UI 元素的关键属性(尤其是用于唯一标识 UI 元素的属性)保持稳定,其他属性可以根据需要进行更改。 因为测试脚本直接操作这些UI元素,如果UI不够稳定,测试脚本无法定位到UI元素,无法有效操作UI元素。
操作过程和结果可以预期:
这意味着交互过程和预期结果是明确的。 比如以QQ的短信功能为例,交互过程和预期结果比较清晰。 即使有操作分支,它们也是有限的,可以很容易地遍历。 这样,测试脚本的设计就比较简单了,基本是线性执行的。 如果交互过程和预期结果不清楚,随机性太大,会大大增加脚本的逻辑复杂度。 过于复杂的脚本逻辑对测试人员的能力要求很高,会增加测试脚本的后期维护成本。
产品生命周期长:
因为UI自动化测试脚本的开发和维护成本比较高,如果被测产品的生命周期太短,或者只发