jmeter - 如何为在 TeamCity 中运行的 JMeter 编写 JSON 模式验证
问题描述
我正在使用 JMeter 进行回归 API 测试自动化。我正在寻找一些基本的有机解决方案来使用内置 JMeter 工具验证 JSON 模式。CI 是使用Team City构建的,因此基本解决方案会更快。
解决方案
开箱即用的 JMeter 不提供 JSON Schema 验证功能,但是您可以使用JSON Schema Validator之类的第 3 方库将其添加到 JMeter
- 获取最新版本的org.everit.json.schema.jar
- 在 Java中获取适当版本的JSON
- 获取合适版本的Handy URI 模板
- 将 .jar 文件上方的 3 放到 JMeter 安装的“lib”文件夹(或JMeter Classpath中的任何位置)
- 添加JSR223 Assertion作为Sampler的子项,它返回您需要检查模式的 JSON(或根据JMeter 范围规则)
将以下代码放入“脚本”区域:
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()))
就是这样,如果模式验证失败,受影响的采样器将被标记为失败
推荐阅读
- r - 有没有更快的方法来使用多个多边形来掩盖多个栅格?
- r - R函数错误`替换长度为零`麻烦?
- php - Laravel format_number 雄辩
- javascript - 异步等待不工作,控制台不返回错误
- postgresql - 在 redshift 中重复连续运行后,除查询的结果发生变化
- java - OnSensorChanged() 未触发 Step 检测传感器
- python - 如何设置小部件以供 vispy 使用
- ios - 将 swift storyboard 上的所有控件从屏幕顶部向下拖动,但运行时它们又回到屏幕顶部
- c++ - 如何从 C++ 中的引用类型创建指针变量?
- python - 使用文件更新当前工作目录后如何更新 tkinter 文本标签