【问题标题】:Best approach for parameterize of json request [duplicate]json请求参数化的最佳方法[重复]
【发布时间】:2018-04-06 11:33:39
【问题描述】:
String json = "{  \n" + 
        "   \"id\":\"\",\n" + 
        "   \"type\":\"ENTERPRISE_ORG\",\n" + 
        "   \"owner\":{  \n" + 
        "      \"type\":\"ORGANIZATION\",\n" + 
        "      \"identity_reference\":"+identityReference+"\n" + 
        "   },\n" + 
        "   \"license_type\":\"CONTRACTED\",\n" + 
        "   \"contract_start_date\":\"2018-03-22T00:00:01\",\n" + 
        "   \"contract_end_date\":\"2020-03-22T07:00:01\",\n" + 
        "   \"effective_date\":\"2018-03-22T00:00:01\",\n" + 
        "   \"originating_entity_id\":"+orginatingReference+",\n" + 
        "   \"external_contract_id\":\"0047813102Gs2LOCCZ\",\n" + 
        "   \"sold_to_id\":\"1041292\",\n" + 
        "   \"sold_to_name\":\"BLOOMSOFT ARGENTINA SA\",\n" + 
        "   \"sold_to_type\":\"RESELLER\",\n" + 
        "   \"market_segment\":\"CR\",\n" + 
        "   \"iso_3166_alpha2_code\":\"US\",\n" + 
        "   \"eu_id\":\"22547302\",\n" + 
        "   \"parent_org_id\":\"\",\n" + 
        "   \"acm_id\":null,\n" + 
        "   \"abn\":null,\n" + 
        "}";

我有上述请求json的post api,需要有相同的json和不同的数据集,用于各种场景,需要在运行时捕获值并传递到下一个post api

问题:

我很困惑和担心如何调用json请求以便于维护和标准流程。

选项

  1. 创建一个Java String方法并调用特征文件和参数化

  2. 创建json并从特征文件中读取和参数化

  3. 在具有各种数据的每个场景的特征文件中直接包含 json 内容。不确定 json 中的任何更改都需要大量更新/维护

任何建议都会很棒

【问题讨论】:

    标签: karate


    【解决方案1】:

    如果我正确理解你的问题,我认为选项 2 是你最好的选择

    我的建议是制作多个“可重复使用”的功能文件。其中有 json 操作

    请阅读getexamplesScenario Outlinesettables

    【讨论】:

      【解决方案2】:

      Vinod - 您需要进行一些研究并阅读文档。请阅读有关数据驱动测试的这一部分,然后点击链接到示例/演示文件。谢谢。

      https://github.com/intuit/karate#data-driven-tests

      我强烈建议您不要除非绝对必要,否则不要使用 Java。

      编辑:是的,您可以使用 JSON 进行数据驱动测试:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/callarray/call-json-array.feature#L8

      是的,即使您从文件中读取的 JSON 也可以动态替换值:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/cats/kittens.feature#L28

      【讨论】:

      • 我已经完成了数据驱动功能并且完美运行我的场景有些不同,其中 JSON 请求和响应有 20 个键和多个嵌套数组(大约 30 行 json)。一些关键需要先前的响应和其他需要的动态数据,如日期或运行时间等。如果我使用示例(根据管道框)表,它需要特征文件中的 30 列并且将多个测试场景。如果我想修改和维护..它对用户不友好..
      • 请建议在不使用 java 的情况下遗漏任何东西只是一个想法调用 json 文件中的功能例如:- call (orderrequest.json) 有没有办法在运行时替换 json 中的键值?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2019-07-18
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 2017-03-24
      相关资源
      最近更新 更多