我们如何根据 Jmeter 中的键值对验证 json
How can we validate json based on key value pair in Jmeter
我曾使用 Jmeter 进行负载测试。但现在我专注于 api 自动化。
从 CSV 文件读取端点和预期的响应,我面临的唯一挑战是如何根据键值对验证 json,以便我只能验证我感兴趣的数据而不是整个 JSON body.
在 java 中使用 eclipse 我们可以使用下面的方法做到这一点:
JSONObject obj1=null,obj2=null;
obj1=new JSONObject(actual);
obj2=new JSONObject(required);
Iterator<?> keys = obj2.keys();
while( keys.hasNext() ) {
String key = (String)keys.next();
if(obj2.get(key) instanceof JSONArray)
{
if(!compareJSONArray(obj2.getString(key),obj1.getString(key)))
{return false;}
status=true;
}else if(obj2.get(key) instanceof JSONObject)
{
if(!compareJSON(obj2.getString(key),obj1.getString(key)))
{return false;}
status=true;
}else{
if(obj2.getString(key).equalsIgnoreCase(obj1.getString(key)))
{
status=true;
}
else{
return false;
}
}
我如何在 Jmeter 中执行以下操作。请帮忙
JSR223 Sampler 允许您执行 Java 语言
您可以将代码放入 JSR223 采样器并使用变量:vars.get("VARIABLE_NAME")
或属性:props.get("propertyName")
您可以使用以下方式影响结果:
SampleResult.setSuccessful(true/false)
SampleResult.setResponseCode("code")
SampleResult.setResponseMessage("message")
您可以使用JSON Path Assertion to validate JSON responses using JSON Path语言表达。
JSON 路径断言可以使用 JMeter Plugins Manager
安装
另一个选项是使用 JSR223 Assertion and Groovy language. Groovy is almost fully Java-compatible so you should be able to re-use your existing Java code. Alternatively be aware that Groovy has built-in JSON support,因此您可以使用 Groovy 样式脚本重新实现 JSON 比较逻辑。
我曾使用 Jmeter 进行负载测试。但现在我专注于 api 自动化。
从 CSV 文件读取端点和预期的响应,我面临的唯一挑战是如何根据键值对验证 json,以便我只能验证我感兴趣的数据而不是整个 JSON body.
在 java 中使用 eclipse 我们可以使用下面的方法做到这一点:
JSONObject obj1=null,obj2=null;
obj1=new JSONObject(actual);
obj2=new JSONObject(required);
Iterator<?> keys = obj2.keys();
while( keys.hasNext() ) {
String key = (String)keys.next();
if(obj2.get(key) instanceof JSONArray)
{
if(!compareJSONArray(obj2.getString(key),obj1.getString(key)))
{return false;}
status=true;
}else if(obj2.get(key) instanceof JSONObject)
{
if(!compareJSON(obj2.getString(key),obj1.getString(key)))
{return false;}
status=true;
}else{
if(obj2.getString(key).equalsIgnoreCase(obj1.getString(key)))
{
status=true;
}
else{
return false;
}
}
我如何在 Jmeter 中执行以下操作。请帮忙
JSR223 Sampler 允许您执行 Java 语言
您可以将代码放入 JSR223 采样器并使用变量:vars.get("VARIABLE_NAME")
或属性:props.get("propertyName")
您可以使用以下方式影响结果:
SampleResult.setSuccessful(true/false) SampleResult.setResponseCode("code") SampleResult.setResponseMessage("message")
您可以使用JSON Path Assertion to validate JSON responses using JSON Path语言表达。
JSON 路径断言可以使用 JMeter Plugins Manager
安装另一个选项是使用 JSR223 Assertion and Groovy language. Groovy is almost fully Java-compatible so you should be able to re-use your existing Java code. Alternatively be aware that Groovy has built-in JSON support,因此您可以使用 Groovy 样式脚本重新实现 JSON 比较逻辑。