zoukankan      html  css  js  c++  java
  • jmeter断言之JSON Assertion

    jmeter断言之JSON Assertion

    1:什么条件下使用json断言是合适的?

    若服务器返回的Response Body为JSON格式的数据,使用JSON断言来判断测试结果是较好的选择。

    2:json数据结构

    JSON用于描述文本数据结构,有如下形式:
    1.对象(object)
      对象是一组无序的名称/值对。对象以{(左大括号)开始,以}(右大括号)结束。每个名称后面跟着:冒号,名称/值对之间用逗号分隔。比如:
      {"name":"zhangsan","sex":1,"age":25}
    2.数组(Array)
      数组是值的有序集合。数组以[(左中括号)开始,以](右中括号)结束。值之间用逗号分隔。
      比如:
    {
    "cert_sign":"",
    "current_beans":
    [
    {
    "branch_code":"1909291058080031",
    "buyer_pay_amount":"null",
    "amont":1
    },
    {
    "branch_code":"1909291058080031",
    "buyer_pay_amount":"null","amont":10
    }
     ],
     "error_code":"0TE110001000",
     "error_info":"交易成功",
     
    }
    如何获取json数据?
    获取error_code,$.error_code
    获取current_beans中第一条数据branch_code值,$.error_code.current_beans[0].branch_code
    获取current_beans中所有条数据branch_code值,$.error_code.current_beans[*].branch_code
    获取current_beans前两条数据,$.error_code.current_beans[0,1]
    获取current_beans数据其中amont大于1,$.error_code.current_beans[?(@.amont>1)]
    获取current_beans最后一条数据,$.error_code.current_beans[-1:]

    3:jmeter JSON Assertion配置
    Assert JSON Path exists
    用于断言的JSON元素的路径JSONPath)。
    1.Additionally assert value
      是否额外验证根据JSONPath提取的值
      不勾选,验证JSONPath能否在JSON文档中找到路径
      勾选,验证根据JSONPath提取值是否预期
    2.Match as regular expression
      预期值是否可以使用正则表达式。
      不勾选,预期值不能使用正则表达式表示;
      勾选,预期值可以使用正则表达式表示。
    预期值
    1.Expect null
      若验证提取的值为null,则勾选此项。
      这里有两个地方需要额外注意:
      a.验证null值,还是需要勾选“Additionally assert value”,否则验证的是JSONPath能否找到路径
      b.预期值不填表示空字符,与null不等价
    2.Invert assertion(will fail if above conditions met)
      若勾选,表示对断言结果取反。
    
    注意:
    除了null外,还有一种特殊的值,就是空数组,预期值不能不填,需要设置为:[]
    其中[]表示空数组。
    如图:

     4:样例演示

    4.1:预期返回的值为null;校验响应返回json数据是否有pay_status,没有则断言通过

     2:预期返回的某个字段a的值应该为A;校验响应返回json数据a的值为A,则断言通过,否则断言失败

     

    绿色表示断言通过

     

    参考:https://zhuanlan.zhihu.com/p/72918260?from=singlemessage
  • 相关阅读:
    c#调用系统资源大集合1
    ASP.NET GridView,DataList,Repeater日期格式显示
    msSQL存储过程中使用 IF ELSE 的规范示例
    PHP DOMDocument简单用法(XML创建、添加、删除、修改)
    PHP解析XML文档属性并编辑
    php修改和增加xml结点属性
    asp.net FileUpload控件文件格式的判断及文件大小限制
    《Linux内核设计与实现》读书笔记(四) 进程的调度
    《Linux内核设计与实现》读书笔记(七) 中断处理
    红黑树
  • 原文地址:https://www.cnblogs.com/qiaoli0726/p/13854385.html
Copyright © 2011-2022 走看看