Json请求响应测试用例

时间:2015-06-24 16:28:42

标签: java json testing jackson jmeter

我正在为一个项目编写单元测试用例,该项目将JSON作为帖子正文并使用JSON帖子体进行响应。

要进行多项检查,例如:

  1. 是否指定了所有必填字段?
  2. 系统如何使用空值或字段缺失进行操作?
  3. 系统如何在内部jsons中使用空值进行操作?
  4. 数字属性的边界情况。
  5. 对于我的初始单元测试用例集,我手动编写了多个json,将它们存储为平面文件并运行测试用例。对于如此多的微服务而言,这不会很好。

    所以我想用代码实现大部分功能。因此,在我的初始阶段,我想生成给定骨架的json对象的所有排列。像删除字段一样,将字段设为空等等。

    我正在使用Java 1.8,Jackson更快的xml,jersey来实现这一目标。我在这里被困在多个方面:

    1. 由于这是一个非常常见的用例,我不知道任何特定的工具吗?
    2. 杰克逊JsonNode equals()方法会识别字段值为null或字段缺失的不等式。
    3. 对内部json节点有什么影响?

1 个答案:

答案 0 :(得分:0)

对于单元测试,您需要在向服务发送随机请求之前定义您的期望。我建议你把问题分解成离散的问题。

  1. 使用例如http://jsonschema.net/#/使用例如https://github.com/fge/json-schema-validator来定义模式并验证针对模式的所有请求http://blog.jayfields.com/2009/01/most-java-unit-tests-consist-of-class.html。这将确保请求是处理良好的befoer得到处理。

  2. 为处理测试特定用例的各个请求的各个方法编写特定的UNIT测试。使用对象构建器构造和排队测试用例,如图所示。在Random data in Unit Tests?

  3. 您可以自动生成一些测试用例。边缘情况和空值总是一个好主意,但您需要首先定义您的期望。对于完全随机的单元测试,请阅读http://docs.mongodb.org/manual/faq/concurrency/

  4. 上的讨论

    您尝试做的更多是集成测试。验证将有助于清除大多数格式错误的请求以及您的系统如何处理特定请求,您应该在开始编码之前获得答案。