利用http模块进行post测试

来源:互联网 发布:教务网络管理系统入口 编辑:程序博客网 时间:2024/04/30 15:10

http 模块并非只包含了 HTTP 服务端的功能,它同时还提供了客户端的功能。在这
个测试程序中,我们使用 http.request() 这一工厂方法来创建新的 http 请求对
象,并指定了 options 这个参数。我们通过配置 options 的一系列属性,来让 http.
Request 对象按我们的要求运行。

var http = require("http");var assert = require("assert");var options = {    host:"127.0.0.1",    port:2000,    path:"/send",    method:"post",    headers: {'Content-Type':'application/x-www-form-urlencoded'}};var request = http.request(options,function(response){    response.setEncoding("UTF8");    var result = "";    response.on("data",function(data){        result += data;        console.log(data);    });    response.on("end",function(){        assert.strictEqual(result, '{"status":"ok","message":"test"}')    });});request.write("tweet=I love you");request.end();

先运行服务端app.js 然后在其他窗口运行这段代码 其实原理跟我介绍的那个工具(poster)是一个原理,个人认为它就是模拟客户端进行表单提交。
测试用例中将检查 data 变量中的数据是否和我们预期服务器会发送的内容一致。如果服务器运行正常,它将返回一个 JSON 数据。利用 assert.strictEqual 函数,我们能对数据进行“ ===”级别的一致性检查。

0 0
原创粉丝点击