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发布了api,并且需要为各种场景提供不同数据集的相同json,并且需要在运行时捕获值并传递给下一个post api
问题:
我很困惑并担心如何调用json请求以便于维护和标准流程。
选项
创建Java String方法并调用特征文件和参数化
创建json并从特征文件中读取并参数化
在具有各种数据的每个场景的特征文件中直接拥有json内容。不确定json中的任何更改都需要大量的更新/维护
任何建议都会很棒
答案 0 :(得分:0)
如果我理解你的问题,我认为选项2是你最好的选择
我的建议是制作多个“可重复使用”的功能文件。其中有json操作
请阅读get
,examples
,Scenario Outline
,set
和tables
答案 1 :(得分:-1)
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