首页 > 解决方案 > 如何为在 TeamCity 中运行的 JMeter 编写 JSON 模式验证

问题描述

我正在使用 JMeter 进行回归 API 测试自动化。我正在寻找一些基本的有机解决方案来使用内置 JMeter 工具验证 JSON 模式。CI 是使用Team City构建的,因此基本解决方案会更快。

标签: jmeter

解决方案


开箱即用的 JMeter 不提供 JSON Schema 验证功能,但是您可以使用JSON Schema Validator之类的第 3 方库将其添加到 JMeter

  1. 获取最新版本的org.everit.json.schema.jar
  2. 在 Java中获取适当版本的JSON
  3. 获取合适版本的Handy URI 模板
  4. 将 .jar 文件上方的 3 放到 JMeter 安装的“lib”文件夹(或JMeter Classpath中的任何位置)
  5. 添加JSR223 Assertion作为Sampler的子项,它返回您需要检查模式的 JSON(或根据JMeter 范围规则
  6. 将以下代码放入“脚本”区域:

    def schemaPath = '/path/to/your/schema.json'
    def rawSchema = new org.json.JSONObject(new org.json.JSONTokener(org.apache.commons.io.FileUtils.readFileToString(new File(schemaPath), 'UTF-8')))
    def schema = org.everit.json.schema.loader.SchemaLoader.load(rawSchema)
    schema.validate(new JSONObject(prev.getResponseDataAsString()))
    
  7. 就是这样,如果模式验证失败,受影响的采样器将被标记为失败

    在此处输入图像描述


推荐阅读