使用UPR性能检测工具测试微信小游戏
使用UPR性能检测工具测试微信小游戏
1. 基本概念
为了获得更加精准的分析数据, UPR 通过 Unity Profiler,直接收集运行在目标硬件上的测试包所产生的分析数据。同时,相比较于集成在 Unity Editor 中的 Unity Profiler,UPR 能过更直观的方式,提供了更多的比较维度和追踪角度,展示了更多的内容,方便测试和开发人员更快的定位性能瓶颈。
2. 自己的项目中使用UPR
集成 UPR Package
使用 UPR Package 获取截图及微信小游戏专有性能数据
下载 Unity Package for UPR 。
导入下载的 UPR Package。
注意:如果你使用的是团结引擎,在导入package之前,需要打开「Windows->Package Manager」,在弹出的窗口中,点击左上角「+」右侧下拉选项,选择「Packages: Built-in」,保证 Image Conversion 和 Screen Capture 模块 Enable:
导入 UPR Package 后,修改 Package 项目的 Assets/UPRTools/Resources/WebGLSettings.asset 文件,在右边 Inspector 内填入 Build Url 为对应的 UPR Desktop 运行的机器IP地址 (如何获取设备IP)。
如果采用了上述方法依旧不成功的话,可以在自己项目的 Assets/UPRTools/Scripts/NetworkServer.cs 文件中 IP 修改成对应的 UPR Desktop IP地址。
// 将 ip 替换成 upr 所在机器的IP地址
string address = string.Format("ws://{0}:{1}", ip, port);如果不在本机进行Webgl测试
注意:打包出来的minigame应用默认你的UPR Desktop是启动在本机的,在本机进行测试,如果UPR Desktop启动在其他的设备上,需要修改 UPR Desktop 所在的电脑的 IP 地址,否则无法获取到数据。
需要修改 Unity Editor 导出后 minigame 文件夹中的 webgl.wasm.framework.unityweb.js 文件,将 IP 地址替换为使用 UPR 测试时 UPR Desktop 所在设备的IP地址(如何获取设备IP)。团结1.1版本及以上版本,对应的端口号是37100,如果是Unity或者团结1.0版本,则需要将端口号改成54998。
在 webgl.wasm.framework.unityweb.js 文件中搜索 ws = new WebSocketConstructor(url, opts); ,找到这一行,在这行前面添加下面代码段(如图):
url = "ws://[运行UPR客户端的电脑IP地址]:37100";
UPR 测试步骤请参考 UPR性能测试。
3.使用示例项目
也可以使用 UOS 提供的示例项目,可下载并加载 微信小游戏示例 。
4. UPR性能测试
在 UPR官网 创建一个 SessionId。( UPR Desktop 使用手册 )
- 创建 SessionId 的时候,需要勾选 WebGL 模式(WebGL模式和普通模式不一样,Unity版本号选项中选择对应的Unity版本或者Tuanjie版本)。
- 在使用 UPR Desktop 之前,请确保已经关闭 Unity Editor(防止性能数据被 Editor 拦截)。
- 如果之前已经使用过 UPR Desktop 的,需要下载最新的 UPR Desktop。 下载最新版 UPR Desktop

在 UPR Desktop 中填入对应的 SessionId,回车,无须在 UPR Desktop 界面中填写IP地址,因为WebGL程序会根据包体中的IP地址,主动向UPR客户端发起连接。
点击 UPR Desktop 中「Start」,然后回微信小游戏中重新进入应用。
测试完成后,点击 UPR Desktop 中「Stop」结束测试即可。返回 UPR 网站上可以点击查看报告查看测试报告。
5. 常见问题
UPR接收不到帧数据?
- 确认一下build成minigame的时候是不是勾选了"development build"和 "auto connect profiler"这两个选项,如果没有勾选,minigame应用就不会连接UPR Desktop,就无法获取到帧数据了。
- 确认一下是否已经修改了需要连接的IP地址。
- 确认一下测试的应用和连接的地址是否可以互相连通,比如在真机上设定了IP地址,但是手机和UPR所在的电脑无法互相连通。
- 请更新最新版本的UPR Desktop,团结1.1.x/1.2.x 需要匹配UPR Windows(2.18.0.0)和UPR MAC(1.18.0.0)及以上版本。
- Windows平台使用(netstat -ano | finstr 37100)查看对应端口LISTEN的PID, 使用 tasklist | findstr [pid号] 查看占用该端口的进程是否是UPR Desktop,如果是被其他应用强行占据了,使用
taskkill /F /pid [pid号]- 强行结束该进程占用,再重新测试。
- 确认一下是否已经关闭 Unity Editor,防止性能数据被 Editor 拦截
- 如果依旧无法解决问题,请 联系我们
如何获取设备IP?
对于Windows系统:
- 打开“开始”菜单,搜索“CMD”或“命令提示符”并点击打开。
- 在命令提示符窗口中,输入 “ipconfig” 然后按回车键。
- 在输出的信息中,查找 “IPv4 地址” 或者 “IPv4 Address”。这就是你的设备IP。

对于Mac系统:
- 打开“系统设置”,点击“网络”选项。
- 在“网络”窗口中,选择你正在使用的网络连接(例如Wi-Fi或以太网),点击打开“详细信息”窗口。
- 你的IP地址将显示在IP地址一栏中,这就是你的设备内网IP

电脑手机不在同一局域网
电脑和手机不在同一局域网下,该怎么测试 ?可以使用数据线连接+端口映射功能:
- 端口映射功能目的是将当前PC设备的端口通过adb或者hdc映射到具体的手机设备上
- 对于Android设备,我们使用adb进行映射,执行如下命令
adb reverse tcp:37100 tcp:37100 //tuanjie 1.1以上端口为37100,tuanjie 1.1以下或Unity端口为54998
adb reverse tcp:56001 tcp:56001 //转发upr package的端口便于接收package数据- 对于openharmony设备,我们使用hdc进行映射
hdc rport tcp:37100 tcp:37100 //tuanjie 1.1以上端口为37100,tuanjie 1.1以下或Unity端口为54998
hdc rport tcp:56001 tcp:56001 //转发upr package的端口便于接收package数据修改 Unity 项目的 Assets/UPRTools/Resources/WebGLSettings.asset 文件,在右边 Inspector 内填入 Build Url 为 127.0.0.1
需要修改 Unity Editor 导出后 minigame 文件夹中的 webgl.wasm.framework.unityweb.js 文件,将 IP 地址替换为127.0.0.1。
在 webgl.wasm.framework.unityweb.js 文件中搜索 ws = new WebSocketConstructor(url, opts); ,找到这一行,在这行前面添加下面代码段(如图):
url = "ws://127.0.0.1:37100"; //tuanjie 1.1以上端口为37100,tuanjie 1.1以下或Unity端口为54998
在真机运行时无法获取截图?
- 确认UPR Package是否正常导入了,确认真机同UPR Desktop所运行的电脑网络可以连通
- 确认是否修改了UPR Package的设置,已经将Unity 项目的 Assets/UPRTools/Resources/WebGLSettings.asset的Build Url修改成UPR Desktop所运行的电脑的IP地址
- 如果确认已经配置了IP地址依旧无法获取到截图的话,可以直接修改UPR Package的源码可以在自己项目的 Assets/UPRTools/Scripts/NetworkServer.cs 文件中 IP 修改成对应的 UPR Desktop IP地址。
// 将 ip 替换成 upr 所在机器的IP地址
string address = string.Format("ws://{0}:{1}", ip, port);- 如电脑手机不在同一局域网内,需参考电脑手机不在同一局域网 确认 UPR Package 接收收据端口映射是否正确