frisby.js是基于node.js和jasmine的自动化测试工具,可以很方便的测试服务器http get/post请求及其返回的json数据. 可以对json数据的类型和数值做判断.

首先需要安装node.js, 并且安装node.js的包管理器npm.

然后使用npm安装frisby和jasmine-node

npm install frisby -g npm install jasmine-node -g
进入frisby的安装目录. 我是win10, 是装在 C:\users\USERNAME\node_modules\frisby 下面的.
在这个目录里新建一个测试用例的目录, 例如建立一个 ceshi 目录. 目录结构是: C:\users\USERNAME\node_modules\frisby\ceshi
[注意] 特别坑爹的是, 这些目录结构不能任意改变. 既不能把frisby目录复制到别的地方使用, 也不能在别的地方创建测试用例的目录. 否则, 测试用例依赖的各种文件找不到, 运行的时候就会报错MODULE找不到.
在ceshi目录中建立一个js文件, 以 spec.js 结尾, 如建立一个test_spec.js 文件
输入如下内容
var frisby = require('../lib/frisby'); //全局设置 frisby.globalSetup({ request: { headers:{'content-type': 'application/json'} } }); frisby.create('登录get') .get('http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone=15210011578') .expectStatus(200) .expectJSONTypes({ status: Number }) .expectJSON({ status: 1 }) .toss();

在命令行, 进入 C:\users\USERNAME\node_modules\frisby 目录, 输入 jasmine-node ceshi 回车, 运行. 出现类似下面的结果. 说明测试没有通过.
C:\users\USERNAME\node_modules\frisby>jasmine-node ceshi undefined F Failures: 1) Frisby Test: baidu [ GET http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone=15210011578 ] Message: Error: Expected number '300202' to match number '0' on key 'errNum' Stacktrace: Error: Expected number '300202' to match number '0' on key 'errNum' at _jsonContains (C:\r\test\node_modules\.frisby.DELETE\lib\frisby.js:1271:17) at jasmine.Matchers.toContainJson (C:\r\test\node_modules\.frisby.DELETE\lib\frisby.js:1186:12) at null. (C:\r\test\node_modules\.frisby.DELETE\lib\frisby.js:717:24) at null. (C:\r\test\node_modules\.frisby.DELETE\lib\frisby.js:1074:43) at Timer.listOnTimeout (timers.js:93:15) Finished in 0.256 seconds 1 test, 3 assertions, 1 failure, 0 skipped

标签: none 阅读量: 984

添加新评论