最近在产品中开发基于REST的API接口,结合自己最近对Node.js的研究,想基于它开发一个REST Client做测试之用。 通过初步研究,Node.js开发HTTP Client还是挺方便的。
选用Node的理由: 1. 使用完全基于JavaScript的Node测试JSON格式的数据,非常之方便 2. Node有很好的社区支持。(现在GitHub上已成了JavaScript最大的开源社区)
By Example:
将上述代码保存成RestTest.js,然后在命令行上运行: node RestTest.js 就可以看输出的结果了。
上面的代码只是使用Node自带的Assert做Unit Test,如果有兴趣的话,还是引入Jasmine等BDD的测试框架。(待续。。。)
生成测报告: 1. Maven Jasmine plugin (SM Client Team已在使用了) 2. Testacular by Google(本博主推荐)
P.S.: 如果你是CoffeeScript的Fans可以参考下面的代码片段 http = require 'http'
equal = require('assert').equal
username = 'falcon'
password = ''
_auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64')
options =
host: 'localhost'
port: 13080
path: '/SM/7/rest/1.1/incident_list/'
method: 'GET'
headers:
'accept': '*/*'
'content-type': "application/atom+xml"
'accept-encoding': 'gzip, deflate'
'accept-language': 'en-US,en;q=0.9'
'authorization': _auth
'user-agent': 'nodejs rest client'
req = http.request options, (res) ->
console.log('STATUS: ' + res.statusCode)
equal(200, res.statusCode)
console.log('HEADERS: ' + JSON.stringify(res.headers))
res.on 'data', (chunk)->
console.log('BODY: ' + chunk)
req.on 'error', (e)->
console.log('problem with request: ' + e.message)
req.end()
|
|