Welcome

首页 / 脚本样式 / Dojo Toolkit / 基于Dojo DOH框架的Javascript性能测试实践

基于Dojo DOH框架的Javascript性能测试实践2014-02-20 ibm 阮奇, 钟思奇, 施瑞琦DOH 框架介绍

Dojo 作为一个功能丰富、高度模块化的 JavaScript 库,注定需要 大量的单元测试来确保每一个功能模块的稳定。Dojo 自带的单元测试框架 DOH(Dojo Objective Harness)为编写各类单元测试提供了坚实的基础。开发者可以利用 DOH 框架快 速地编写以下单元测试:

普通 Javascript 单元测试

异步 Javascript 单元测试

Javascript 性能测试

Web UI 交互测试

其中,通过 DOH 普通 Javascript 单元测试可以确保同步 Javascript 代码逻辑的正确 性。DOH 异步 Javascript 单元测试则可以保障包含 XHR 调用、setTimeout、setInterval 等异步 Javascript 代码的模块的质量。DOH 提供的性能单元测试可以让开发者方便地为自 己的代码建立 Benchmark。DOH Web UI 交互测试使用机器人(robot)模拟页面交互进行自 动化 UI 交互测试,使得开发者不再需要通过重复的手动操作来对页面的 UI 进行测试。

DOH 测试框架主要代码在 Dojo 的 util 包中。主要功能由以下文件提供:

runner.js:DOH 核心代码,定义了支撑 DOH 测试框架的基础 API

util/doh/_browserRunner.js:为 DOH 测试框架提供在浏览器下执行的能力。

util/doh/_nodeRunner.js:为 DOH 测试框架提供使用 nodeJS 执行的能力

util/doh/_rhinoRunner.js:为 DOH 测试框架提供使用 Rhino 执行的能力。

util/doh/robot.js:定义了为 Web UI 交互测试设计的机器人(robot)API。

util/doh/robot:该文件夹包含了实现 robot 交互功能的 Java 代码及相关资源。

util/doh/plugins:该文件夹包含了 DOH 的各类插件。用户自行开发的 DOH 插件也 可以放在该文件夹下。

DOH 测试可以在浏览器或非浏览器环境下进行。在浏览器环境 下,DOH 框架提供了强大的 UI 界面使得开发者可以通过颜色直观地区分 DOH 测试用例的执 行情况、暂停 / 执行指定测试用例、查看测试报告等。

图 1. DOH 测试界面

在非浏览器环 境下,如使用 nodejs,Rhino 时,往往只进行不涉及 UI 界面和 DOM、BOM 的纯 JavaScript 逻辑测试。而 DOH robot 在非浏览器环境下也是不可用的。