browserjs

浏览器自动化测试工具

npm install browserjs
1 downloads in the last day
54 downloads in the last week
107 downloads in the last month

BrowserJS

BrowserJS是一个基于nodejs的浏览器测试工具,支持chrome,ie, PhantomJS 等浏览器。BrowserJS提供了更简便的方法,可以使用目前流行的测试框架完成自动化测试任务.

BrowserJS的主要目标是为产品页面的监控和测试提供更简单快捷的工具。 在页面开发过程中可以使用BrowserJS测试你的修改是否影响了页面的正常功能, 或者在产品上线后,确保你的页面功能正常。

主要特性

  • 集成多种主流浏览器,可以随意选择
  • 集成主流测试框架,使用前端测试框架测试页面
  • 支持静态资源代理, 代码修改及时反映到页面上
  • 支持前端性能测试
  • 支持捕获JS错误

安装

从 npm 安装

$ npm install browserjs -g

从 Gitlab 安装

$ git clone git@github.com:uitest/browserjs.git
$ cd browserjs
$ sudo npm install -g

快速上手

首先进入工程目录,创建一个 BrowserJS 配置文件,这个配置文件是一个简单的nodejs文件,配置文件告诉BrowserJS,你的工程里面哪些文件是测试文件以及如何运行这些测试文件。 在此gitlab库的根目录browser.conf.js里有一个已经生成好的配置文件,包含了大部分的配置项。 生成你自己的配置文件可以使用 init 命令, 生成的文件默认名为 browser.conf.js

$ browser init

根据提示完成对应的配置,详细的配置信息可以参考这里 [Configuration File Overview]. 完成配置文件后,就可以启动BrowserJS了。

$ browser start

除了配置文件以外,很多选项可以直接通过命令行进行配置。 使用 ‘browser start --help’ 查看更多配置

这里有一个例子,展示了一个简单的BrowserJS的测试用例。

var browser = require("browser").create();
//可选配置,默认为jasmine
browser.framework = "jasmine";

browser.open("http://www.taobao.com");

browser.execute(function (done) {
    //jasmine代码
    describe("BrowserJS", function () {
        it("前端测试框架", function () {
            expect("Browser"+"JS").toBe("BrowserJS");
        })
    })
    done();
})

browser.run();

如果BrowserJS已经正确的安装,运行之后你会看到如下结果。

example

更多demo可参考 这里;

YSlow

BrowserJS不但支持普通的测试,同时也提供了性能测试的方法。 BrowserJS 使用 YSlow for PhantomJS 和 PhantomJS 完成性能测试。 注意:进行性能测试时,BrowserJS会忽视浏览器配置,强制使用PhantomJS,

var browser = require("browser").create();

browser.yslow("http://www.taobao.com");

browser.run();

捕获JS异常

BrowserJS 通过PhantomJS的onError事件捕获页面错误。 注意:进行性能测试时,BrowserJS会忽视浏览器配置,强制使用PhantomJS,

var browser = require("browser").create();

browser.tryCatch("http://www.taobao.com");

browser.run();

开放接口

大部分时候都是直接通过命令行调用BrowserJS,但是BrowserJS 也可以做为node模块使用。

browser.start

browser.start(options, [callback=process.exit])

此方法相当于 'browser start' ;

var server = require('browserjs').server;
server.start({port: 9877}, function(results) {
  console.log('test result: ' + results);
});
npm loves you