最近在产品中开发基于REST的API接口,结合自己最近对Node.js的研究,想基于它开发一个REST Client做测试之用。

通过初步研究,Node.js开发HTTP Client还是挺方便的。

选用Node的理由:

1. 使用完全基于JavaScript的Node测试JSON格式的数据,非常之方便

2. Node有很好的社区支持。(现在GitHub上已成了JavaScript最大的开源社区)

By Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var http = require('http');
var equal = require('assert').equal;
 
var username = 'falcon';
var password = '';
var _auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64')
 
var 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'
    }
};
 
var req = http.request(options, function (res) {
    console.log('STATUS: ' + res.statusCode);
    equal(200, res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));
 
    res.on('data',function (chunk) {
         console.log('BODY: ' + chunk);
    });
});
 
req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});
 
 
req.end();

将上述代码保存成RestTest.js,然后在命令行上运行: node RestTest.js 就可以看输出的结果了。

上面的代码只是使用Node自带的Assert做Unit Test,如果有兴趣的话,还是引入Jasmine等BDD的测试框架。(待续。。。)

最新文章

  1. Proxy setting
  2. Android之简单了解Bitmap显示图片及缓存图片
  3. HDU 4005 The war Tarjan+dp
  4. POJ 3061 (二分+前缀和or尺取法)
  5. [转]在Ubuntu 下安装Redis 并使用init 脚本启动
  6. 字符串的使用(string,StringBuffer,StringBuilder)
  7. Linux 终端访问 FTP 及 上传下载 文件[转]
  8. mysql导入导出命令(Linux+Windows)
  9. 关于内核转储(core dump)的设置方法
  10. [Python Web]常见的 POST 提交数据的方式
  11. URL分发(URLConf)
  12. url下载文件到本地
  13. CentOS下 RabbitMQ单机安装配置
  14. CSS美化自己的完美网页
  15. day15(Mysql学习)
  16. angular的生命周期
  17. PAT甲级1026. Table Tennis
  18. PAT 1136 A Delayed Palindrome[简单]
  19. AngularJS自定义指令及指令配置项
  20. jmeter 分布式集群

热门文章

  1. dos基本命令
  2. php:订单号和时区
  3. wrk 进程管理
  4. html简单框架网页制作
  5. LightOJ1105 Fi Binary Number(数位DP)
  6. datetime与smalldatetime之间的区别
  7. svg―Raphael.js Library
  8. Quartz Cron 表达式
  9. (转载)读取xml中的指定节点的值
  10. 解决javax.imageio.IIOException: Can't create output stream!