我们如何根据Jmeter中的键值对验证json

时间:2017-07-28 04:45:12

标签: java jmeter read-write web-api-testing

我已经使用Jmeter进行负载测试。但现在我专注于api自动化。

从CSV读取端点和预期响应的文件,只有挑战我是否面临是否如何基于键值对验证json,以便我只能验证我感兴趣的数据而不是整个JSON主体。

在使用eclipse的java中,我们可以使用下面的方法:

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中执行此操作。请帮忙

2 个答案:

答案 0 :(得分:1)

JSR223 Sampler允许您执行Java语言

您可以将代码放在JSR223 Sampler中并使用变量:vars.get("VARIABLE_NAME")或属性:props.get("propertyName")

您可以使用以下方式生成结果:

SampleResult.setSuccessful(true/false)
SampleResult.setResponseCode("code")
SampleResult.setResponseMessage("message")

答案 1 :(得分:1)

您可以使用enter image description here使用JSON Path Assertion语言表达式验证JSON响应。

可以使用JSON Path

安装JSON Path Assertion

JMeter Plugins Manager

另一种选择是使用JMeter JSON Path Assertion via Plugins ManagerJSR223 Assertion。 Groovy几乎完全兼容Java,因此您应该能够重用现有的Java代码。或者,请注意Groovy language,以便您可以使用Groovy样式脚本重新实现JSON比较逻辑。