快速开始

首先下载最新版微信开发者工具开发版,并覆盖安装。

环境准备

前面提到,我们提供了JavaScript/Python两个版本的SDK,开发者需要根据不同的语言类型提前进行环境配置:

  • node.js >= 8.8.0、npm

  • 3.0 > Python >= 2.7、pip

  • 如果已经安装过opencv-python或opencv-contrib-python,且版本在3.4.0.12之上,请手动卸载以上两个库

    pip uninstall opencv-python
    pip uninstall opencv-contrib-python
    
  • 在微信开发者工具菜单中依次点击 设置-安全,点击开启。

    开启

SDK安装

SDK的安装包请在申请权限之后,到该Git项目下载。

JavaScript 版本安装
  • 使用npm安装mini_game_test-0.0.1.tgz 文件,命令:

    npm install mini_game_test-0.0.1.tgz -g
    
  • 如果需要使用图片识别相关API,则需要安装压缩包中附带的requirements.txt,命令:

    pip install -r requirements.txt --user --upgrade --force-reinstall
    
Python 版本安装
  • 安装mini_game_test_sdk-0.1.0-py2-none-any.whl,命令:

    pip install mini_game_test_sdk-0.1.0-py2-none-any.whl --user --upgrade --ignore-installed
    

概念简介

在正式开始之前,请先了解下文中可能出现的一些概念:

  • 节点树:从游戏引擎中获取的渲染节点信息组成的树型数据。

  • 节点:游戏引擎中的渲染节点对应的信息,拥有各种属性。

更多详细信息将在章节基本概念中介绍。

第一个测试Case

使用Game Inspector插件

打开微信开发者工具,在菜单栏选择工具-插件,进入插件页面,添加Game Inspector插件。

安装插件

添加完毕后,重启开发者工具,待模拟器游戏加载完毕后,进入Game Inspector插件,点击刷新按钮,更新节点树。

刷新

点击左上角的节点选择器,将鼠标移动到模拟器中目标元素上,插件会自动选中对应节点。

选择节点

点击复制按钮,复制选中节点的Path信息到剪切板。请保存好这个Path信息,后面写Case时需要用到。

复制Path

建立测试Case

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

JavaScript版本:

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()

Python版本:

# -*- 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()
在模拟器中运行

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

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

    path/to/cli --auto /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 下面用\\ 代替 \)

之后我们可以看到成功打开对应的小游戏,如:

cmdoutput

!> 一定要看到命令行有Open project with automation enabled success的输出,否则请检查开发者工具版本,或者检查命令行参数。

命令行进入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已经运行起来了。可以在模拟器中看到,目标节点被点击了一下。

至此,你已经完成了第一个小游戏测试Case,更多功能将在章节Game Inspector插件以及Case书写中介绍。