Youkai:跨平台的VR/AR应用测试框架
立即解锁
发布时间: 2025-08-29 12:10:48 阅读量: 5 订阅数: 25 AIGC 

### Youkai:跨平台的VR/AR应用测试框架
#### 1. 测试在软件开发中的重要性
测试是软件开发的基础部分,它能尽早发现可能影响用户体验的缺陷,从而确保产品质量。为了在竞争中脱颖而出,开发团队需要在短时间内交付高质量的软件。敏捷开发作为传统方法的替代方案应运而生,如今已成为主流的开发过程和项目管理方法。测试自动化是优化测试过程的可行途径,它有助于在不影响质量的前提下降低人力和时间成本。
#### 2. 现有Unity测试方案
Unity是一款多功能工具,可用于创建多种类型的应用程序,这些应用程序和其他软件一样需要进行测试。因此,开发团队提出了多种自动化测试方法:
- **Unity游戏功能测试**:有团队针对Android平台的Unity游戏开发了自动化功能测试解决方案,通过修改MonkeyRunner生成的测试用例,将收集的数字坐标转换为可读文本,以指示相应的Unity组件。
- **Unity GUI烟雾测试**:结合自动化单元测试、功能测试框架(Appium)和图像识别(OpenCV),对Unity的图形用户界面(GUI)功能进行自动烟雾测试。
- **游戏模拟测试**:利用神经进化算法模拟玩家行为来测试游戏。
#### 3. VR和AR测试相关工作
- **VR测试**:有工具使用单元测试自动化测试VR Juggler平台的虚拟现实用户界面;有方案评估360度视频播放器的图像质量,但不分析代码质量也不与VR平台交互;还有作者提出半形式化语言支持功能测试的需求规范,并创建了VR - ReST工具。
- **AR测试**:相关文献较少。有框架用于在日常场景中测试增强现实应用程序,帮助开发者和测试人员识别和调试用户体验问题;还有方法利用机器学习自动对增强现实系统的文本标签进行可读性分类。
#### 4. VR/AR应用特点及开发差异
- **VR应用特点**:旨在为用户提供强烈的沉浸感,用户处于3D环境的中心,可使用控制器或其他传感器与物体进行交互。VR体验类型包括社交、360度媒体消费、轨道骑行和交互式虚拟环境。与2D程序相比,VR开发需要填充360度可视化的3D资产,模拟物理和重力,用户界面存在于世界中而非屏幕上,有多种移动控制方式,且物体大小需接近真实世界。
- **AR应用特点**:将虚拟和现实世界融合,通过在真实世界物体上投射计算机生成的图像来增强现实。与VR的区别在于不完全沉浸,而是用数字信息增强现实。开发方面,物理和重力、基于世界的界面和物体大小对两者都很重要,但用户交互方式不同。
- **Unity引擎**:是增强和虚拟现实开发的领先游戏引擎,可支持超过25个平台,拥有开发者商店,提供数千种资产和工具,加速项目开发。VR应用通常具有以下结构层:
- **表示层**:由用户界面(如使用Unity UI的元素)和可视化组件(如自定义网格和着色器)组成。
- **原生系统**:负责主要的IO操作,如从用户图库中检索数据。
- **数据系统**:存储和检索应用程序数据结构,如收藏图像、用户数据。
#### 5. 现有Unity测试工具
| 工具名称 | 特点 |
| ---- | ---- |
| AltUnity Tester | 开源的UI测试自动化工具,支持C#、Python或Java。可查找和修改场景对象及其属性,模拟设备输入,获取截图并生成测试报告。 |
| Unity Test Framework (UTF) | 扩展了NUnit库,支持在开发过程中(编辑器和播放模式)和目标平台上测试代码。编辑器测试可访问游戏和编辑器代码,播放模式测试仅可访问游戏代码。用户可通过Unity编辑器界面创建和管理测试,也可自定义工具扩展功能。 |
#### 6. Youkai框架介绍
Youkai是一个基于Python的VR/AR平台测试框架,具有三个层次:引擎、通信通道和插件。
- **引擎**:用户通过桌面应用程序与Youkai引擎交互,它使VR平台透明化,允许编写测试来直接获取和评估在VR/AR平台上运行的代码。
- **通信通道**:负责将消息从引擎发送到插件,实现了一个基于套接字服务器的C#应用程序与Python桌面应用程序的连接。
- **插件**:开发了一个C#插件,通过通信通道抽象与解决方案进行通信。扩展到新平台时,开发者需要编写新的插件。
由于测试代码是Python脚本,因此可以很容易地与最常用的Python测试框架(如unittest和pytest)一起运行。该框架可以自动化测试不同的用户界面元素,如桌面应用程序的按钮和列表,或3D Unity游戏、VR/AR应用程序中的相机移动。
#### 7. 实验设置
- **测试应用**:实现了一个基本的虚拟画廊应用程序,允许用户观看360度视频,有初始菜单和单独的视频播放器场景,目标平台为GearVR。
- **插件实现**:实现了一个C#插件,接收Youkai引擎的命令,并解析可用对象,使引擎能够完全控制Unity实例。
#### 8. 与其他测试工具的对比
| 对比项 | Youkai | AltUnity Tester | Unity Test Framework |
| ---- | ---- | ---- | ---- |
| 设置难度 | 开发者需将源代码粘贴到Unity项目的正确文件夹中 | 开发者从Unity Asset Store下载插件和外部Python包,设置更简单 | - |
| 界面复杂度 | 引擎起初看起来复杂 | 界面更简单 | - |
| Python接口方法 | 不仅可以按名称搜索GameObject,还具有处理GameObject组件的方法 | 方法较少,不允许检索给定GameObject的附加组件 | - |
| 脚本语言及运行方式 | 使用Python,在不同进程中运行,便于在应用程序在VR平台上运行时收集测试结果 | - | 仅接受C#脚本,在应用程序运行的同一进程中运行测试 |
| 对Unity系统的操作方式 | 使用反射来内省Unity系统 | - | 允许直接使用Unity API |
| 测试平台及连接性 | 可直接在目标VR平台上测试,可同时连接多个实例 | - | - |
#### 9. 测试用例示例
- **打开主画廊**:加载主Unity场景,检查主要GameObjects是否存在并可见。
- **成功加载图像**:模拟用户凝视和点击,检查纹理是否成功加载。
- **滚动内容列表**:模拟用户凝视和滑动手势。
#### 10. 测试流程
```mermaid
graph LR
A[启动应用实例(运行Unity框架和Youkai插件)] --> B[启动Docker实例(安装python3和Youkai python lib)]
B --> C[执行Python测试脚本]
C --> D[Youkai引擎连接运行Youkai插件的实例]
D --> E[完成所有测试]
E --> F[结合unittest和HtmlTestRunner生成最终测试报告(HTML格式)]
```
Youkai框架为VR/AR应用的测试提供了一种新的解决方案,与现有工具相比具有一定的优势。未来可以考虑使用机器学习自动生成测试用例和测试场景,并改进界面以减少与其他解决方案的差异。
### Youkai:跨平台的VR/AR应用测试框架
#### 11. Youkai框架优势总结
Youkai框架在VR/AR应用测试领域展现出了多方面的优势,具体如下:
- **跨平台兼容性**:能够支持多种VR/AR平台,为开发者提供了统一的测试方案,无需针对不同平台开发不同的测试工具。
- **灵活性**:采用Python脚本进行测试编写,与常用的Python测试框架兼容,便于开发者进行定制化开发。同时,其反射机制可以灵活地内省Unity系统,实现对代码的深入测试。
- **高效性**:在不同进程中运行测试,能够在应用程序运行于VR平台时高效地收集测试结果,不影响应用的正常运行。
- **扩展性**:通过编写新的插件,可以轻松将框架扩展到新的平台,适应不断发展的VR/AR技术。
#### 12. 操作步骤总结
为了帮助开发者更好地使用Youkai框架进行VR/AR应用测试,下面总结了具体的操作步骤:
1. **环境搭建**
- 启动应用实例,确保运行Unity框架和Youkai插件。
- 启动Docker实例,安装python3和Youkai python lib。
2. **测试脚本编写**:使用Python编写测试脚本,可结合unittest和pytest等框架,编写如打开主画廊、加载图像、滚动内容列表等测试用例。
3. **测试执行**:运行Python测试脚本,Youkai引擎会连接运行Youkai插件的实例,开始执行测试。
4. **结果收集与报告生成**:测试完成后,结合unittest和HtmlTestRunner生成最终的HTML格式测试报告。
#### 13. 未来发展方向
尽管Youkai框架已经取得了一定的成果,但仍然有一些可以改进和拓展的方向:
- **机器学习应用**:利用机器学习技术自动生成测试用例和测试场景,提高测试的覆盖率和效率。例如,可以通过学习用户的行为模式,生成更贴近实际使用情况的测试用例。
- **界面优化**:进一步改进Youkai引擎的界面,降低其复杂度,使其更易于使用,减少与其他测试工具在界面上的差异。
- **功能扩展**:增加更多的测试功能,如性能测试、兼容性测试等,以满足不同类型VR/AR应用的测试需求。
#### 14. 总结
Youkai框架为VR/AR应用的自动化测试提供了一种创新的解决方案。它结合了Python脚本的灵活性和反射机制的强大功能,能够在不同平台上高效地进行测试。与现有测试工具相比,Youkai框架在设置灵活性、脚本语言选择、测试平台兼容性等方面具有明显优势。通过具体的实验和测试用例,验证了其在实际应用中的可行性和有效性。
随着VR/AR技术的不断发展,对测试工具的要求也越来越高。Youkai框架有望通过不断的改进和扩展,成为VR/AR应用测试领域的重要工具,为开发者提供更高效、更全面的测试支持,推动VR/AR产业的健康发展。
以下是Youkai框架使用的关键步骤表格总结:
| 步骤 | 操作内容 |
| ---- | ---- |
| 1 | 启动应用实例(运行Unity框架和Youkai插件) |
| 2 | 启动Docker实例(安装python3和Youkai python lib) |
| 3 | 编写Python测试脚本 |
| 4 | 运行Python测试脚本,Youkai引擎连接实例 |
| 5 | 完成测试,生成HTML格式测试报告 |
下面是Youkai框架未来发展方向的mermaid流程图:
```mermaid
graph LR
A[现有Youkai框架] --> B[机器学习应用]
A --> C[界面优化]
A --> D[功能扩展]
B --> E[自动生成测试用例和场景]
C --> F[降低界面复杂度]
D --> G[增加性能、兼容性测试等功能]
```
0
0
复制全文
相关推荐



