有了前面的各种准备后,可以开始写第一个测试用例了。这里我们提供了一个Demo小游戏作为示例。

# 1、在开发者工具中打开Demo小游戏工程

# 2、选择想要操作的节点,保存Path信息

  • 进入开发者工具中的Game Inspector插件功能面板,点击左上角的节点选择器,将鼠标移动到模拟器中的目标区域,插件会自动选中对应节点。 选择节点

  • 点击复制按钮,即可复制选中节点的Path信息到剪切板,这个信息在下面写Case时马上会被用到。 复制Path

# 3、新建测试用例

新建test.js/test.py文件,将下面对应语言的代码复制到文件中,将刚刚保存的节点Path信息赋值给path变量,并保存。

const mini_game_test = require("mini_game_test")
const BaseCase = mini_game_test.BaseCase
const logger = mini_game_test.logger

class Test extends BaseCase {
    async run(c) {
        logger.info("start")
        let path = "填入path" //将刚刚保存的节点Path信息赋值给path变量
        let tmp = null
        //获取节点
        tmp = await c.findPath(path)
        //点击
        await tmp.tap()
        //等待
        await c.sleep(3000)
        logger.info("end")
    }
}

const t = new Test()
t.start()
# -*- coding: utf-8 -*-
from mini_game_test_case_py.case.BaseCase import BaseCase
from mini_game_test_case_py.lib import Asserts
from mini_game_test_case_py.lib import Logger
import time

class TestCase(BaseCase):
    def run(self, c):
        Logger.info("start")
        #获取开始按钮
        path="填入path" #将刚刚保存的节点Path信息赋值给path变量
        start_node = c.find_path(path)
        #判断开始按钮是否存在
        Asserts.assert_nodeselector_exists(start_node)
        #点击
        start_node.tap()
        #等待
        c.sleep(6000)
        Logger.info("end")

t = TestCase()
t.start()

# 4、在模拟器中运行用例

找到开发者工具的 命令行工具 , 输入命令打开测试小游戏:

    path/to/cli auto --project /minigame/project/path --auto-port {port}
    # path/to/cli 是命令行工具所在位置:
    # macOS: <安装路径>/Contents/MacOS/cli
    # Windows: <安装路径>/cli.bat windows版本在安装之后默认会把cli加入到系统路径,可以先测试cli命令是否可用,如果可用,path/to/cli可以直接用cli替换

    # /minigame/project/path 是小游戏工程的路径(Windows 下面用\\ 代替 \)

注:这里的{port}请填写未被占用的端口,如9421,不能与开发者工具安全模式的端口相同。

这时可以看到成功打开对应的小游戏,如: cmdoutput

通过命令行进入test.js/test.py所在目录,执行命令,运行Case:

  • JavaScript版本:
node test.js -t ide -p {port} # port为刚才命令行工具设置的端口(如9421) 
  • Python版本:
python test.py -t ide -p {port} #  port为刚才命令行工具设置的端口(如9421) 

此时,你的第一个测试Case已经运行起来了。可以在模拟器中看到,目标节点被点击了一下。