【问题标题】:How can we validate json based on key value pair in Jmeter我们如何根据 Jmeter 中的键值对验证 json
【发布时间】:2018-03-23 14:32:28
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以使用JSON Path Assertion 来验证使用JSON Path 语言表达式的JSON 响应。

    可以使用JMeter Plugins Manager 安装JSON 路径断言


    另一个选项是使用JSR223 AssertionGroovy language。 Groovy 几乎完全兼容 Java,因此您应该能够重用现有的 Java 代码。或者请注意Groovy has built-in JSON support,以便您可以使用 Groovy 样式脚本重新实现 JSON 比较逻辑。

    【讨论】:

      【解决方案2】:

      JSR223 Sampler允许你执行Java语言

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

      您可以使用以下方法影响结果:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多