如何为TeamCity中运行的JMeter编写JSON模式验证

时间:2019-02-07 14:40:30

标签: jmeter

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

1 个答案:

答案 0 :(得分:0)

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

  1. 获取org.everit.json.schema.jar的最新版本
  2. 获取适当版本的JSON in Java
  3. 获取适当版本的Handy URI Templates
  4. 将上述.jar文件中的3拖放到JMeter安装的“ lib”文件夹(或JMeter Classpath中的任何位置)
  5. JSR223 Assertion添加为Sampler的子代,该子代返回您需要根据模式(或根据JMeter Scoping Rules)检查的JSON
  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. 就是这样,如果架构验证失败,则受影响的采样器将被标记为失败

    enter image description here