【发布时间】:2020-10-08 03:11:36
【问题描述】:
我想编写数据驱动的测试,传递从外部文件 (csv) 读取的动态值。 能够从 csv 传递简单字符串的动态值(下面的帐号和附属 ID)。但是,使用嵌入式表达式,如何从 csv 文件中为下面的“DealerReportFormats”json 数组传递动态值?
非常感谢任何帮助!
Scenario Outline: Dealer dynamic requests
Given path '/dealer-reports/retrieval'
And request read('../DealerTemplate.json')
When method POST
Then status 200
Examples:
| read('../DealerData.csv') |
DealerTemplate.json is below
{
"DealerId": "FIXED",
"DealerName": "FIXED",
"DealerType": "FIXED",
"DealerCredentials": {
"accountNumber": "#(DealerCredentials_AccountNumber)",
"affiliateId": "#(DealerCredentials_AffiliateId)"
},
"DealerReportFormats": [
{
"name": "SalesReport",
"format": "xml"
},
{
"name": "CustomerReport",
"format": "txt"
}
]
}
DealerData.csv:
DealerCredentials_AccountNumber,DealerCredentials_AffiliateId
testaccount1,123
testaccount2,12345
testaccount3,123456
【问题讨论】:
-
我试着理解这个问题并放弃了。这里的任何人都可以拍摄。或者你可以按照这个过程:github.com/intuit/karate/wiki/How-to-Submit-an-Issue
-
@PeterThomas 我尽力简化问题。你能建议吗
-
@jyohas 不要使用 csv 作为输入。相反,使用 json 作为输入。这样你就可以在输入 json 中拥有 json 数组。
-
@Neodawn csv 用于将动态值输入到 json 模板中。想要在 DealerReportFormats 下传递“名称”和“格式”字段的动态值(类似于我为 #(DealerCredentials_AccountNumber) 所做的那样)
-
@jyohas 看到我的回答。老实说,你试图做的太多了。有时,多写几个
Scenario-s 就可以了:stackoverflow.com/a/54126724/143475
标签: automated-tests expression karate data-driven-tests