【问题标题】:Jmeter test script doesn't work when node.js close connection?node.js关闭连接时Jmeter测试脚本不起作用?
【发布时间】:2014-01-07 04:05:41
【问题描述】:

我有一个简单的API上传,它用于接受来自客户端的上传文件。

var flg=true;
app.post('/test', function(req, res){
flg=!flg;
var returnJson='{';
if(flg){
    req.form.on('part', function (part) {
        if(part){
            part.resume();
        }
        returnJson=returnJson+',\"status\":\"0\"}';
        res.send(returnJson);
    });
}else{
            console.log('close');
    returnJson=returnJson+',\"status\":\"1\"}';
    res.header('Connection', 'close');
    res.send(413, returnJson);
}
 });

我想用 Jmeter 测试这个 API。 "status":"0" 表示成功。 "status":"1" 表示失败。我这样编写 Jmeter 脚本: http://i.imgur.com/vEUJKc8.jpg

Jmeter 仅显示响应包含“status”:“0”的所有采样器。似乎 Jmeter 排除了来自 else 部分的失败采样器响应。 http://imgur.com/bkFSpK2

如何查看 Jmeter 中包含所有成功和失败采样器的所有采样器? 成功的采样器结果是: 线程名称:API 1-1 样品开始时间:2013-12-18 11:46:08 PST 加载时间:7 延迟:6 字节大小:178 标头大小(以字节为单位):163 正文大小(以字节为单位):15 样本数:1 错误计数:0 响应码:200 响应消息:OK

响应标头: HTTP/1.1 200 正常 X-Powered-By: Express 内容类型:文本/html;字符集=utf-8 内容长度:15 日期:格林威治标准时间 2013 年 12 月 18 日星期三 19:46:08 连接:保持活动

HTTPSampleResult 字段: 内容类型:文本/html;字符集=utf-8 数据编码:utf-8

有什么建议吗?

【问题讨论】:

    标签: node.js upload jmeter


    【解决方案1】:

    我不喜欢这节:

     ContentType: text/html;
    

    JSON 的正确 ContentType 将是 application/json

    您可以尝试使用HTTP Header Manager 将请求的Content-Type 标头设置为application/json,看看会发生什么。

    还有一个 JSON plugin,它提供 JSON Path Extractor 和 JSON Path Assertion(从下载列表中选择“Extras with libs set”)。

    【讨论】: