elasticsearch 对ElasticSearch的Jmeter http请求中的三重引号
我正在用Jmeter工具测试ElasticSearch,但还不能解决http请求字符串引用错误的问题 我的管道:
elasticsearch 对ElasticSearch的Jmeter http请求中的三重引号,
elasticsearch,jmeter,
elasticsearch,Jmeter,我正在用Jmeter工具测试ElasticSearch,但还不能解决http请求字符串引用错误的问题 我的管道: 读取csv文件 对ElasticSearch进行查询 测试数据集包含内部带有双引号的字符串。 在这种情况下,我使用三重引用 比如说, 问题1 { "query": { "match": { "title": {
{
"query":
{
"match":
{
"title":
{
"query": """Green apple" fresh"""
}
}
}
}
答复1
"caused_by":{"type":"json_parse_exception",
"reason":"Unexpected character ('\"' (code 34)):
was expecting comma to separate Object entries\n at [
Source: (org.elasticsearch.common.bytes.AbstractBytesReference$MarkSupportingStreamInputWrapper)
该错误是由于“”符号引起的
如果我在Kibana中运行相同的查询,答案是正确的
我正在使用for请求内容类型:application/json;charset=UTF-8
jmeter system.properties中的编码:
- file.encoding=UTF-8
- file.encoding.pkg=sun.io
- sun.io.unicode.encoding=UnicodeBig
- sun.jnu.encoding=UTF-8
而且
Jmeter ver.: 5.3
ElasticSearch ver.: 7.9
是否可以在不进行数据预处理的情况下修复此情况
非常感谢您的建议。您可以在值中双引号
\“
之前使用反斜杠
{
"query":
{
"match":
{
"title":
{
"query": "Green apple\" fresh"
}
}
}
}使用groovy脚本通过JSR223预处理器解决,无需三重引用:
def title_escaped = vars.get("title").replaceAll('\\"','');
vars.put('title_escaped', title_escaped);
感谢@Janesh的发现。Janesh,谢谢。我试图找出如何设置Jmeter预处理器来解决这个问题。