我一直在尝试为SAML安全的Web服务编写jmeter负载测试。所以对于我来说,它有一个http请求采样器,它获取访问代码并存储在名为access_code的变量中。但是Web服务接受以下形式的发布请求:
api.service.edu/api/authentication,正文数据为{“代码”:“ $ {access_code}”,“ redirect_uri”:“某些站点”}。
但是每当我尝试运行jmeter时,采样器都会出现以下错误:
线程名称:基本应用使用流程1-1 样品开始时间:2018-11-07 21:08:50 EST 加载时间:1209 连接时间:0 延迟:1208 字节大小:370 已发送字节:0 标头大小(以字节为单位):324 正文大小(以字节为单位):46 样本数:1 错误计数:1 数据类型(“文本” |“ bin” |“”):文本 响应码:500 响应消息:内部服务器错误
HTTPSampleResult字段: ContentType:application / json;字符集= utf-8 数据编码:utf-8
是因为我解析access_code的方式吗?如果可以的话,如何通过json发布请求解析动态值?
答案 0 :(得分:0)
${access_code}
变量,即相关的400无法从先前的响应中提取出来。使用Post-Processor和Debug Sampler侦听器组合您的${access_code}
变量可能包含一些特殊字符,而这些特殊字符在JSON和View Results Tree中是不允许的
\b
\f
\n
\r
\"
\\
如果您的${access_code}
变量包含以上任何内容-生成的JSON将不正确。为了安全起见,我建议您将${access_code}
变量引用替换为must be escaped调用
${__groovy(org.apache.commons.lang3.StringEscapeUtils.escapeJson(vars.get('access_code')),)}