使用具有许多属性的json规范外部数据流



我正试图从specflow excel迁移到使用json数据文件和外部数据插件

与Specflow相关-在功能文件中使用外部文件中的数据是否有设置功能文件的演练,以及使用新的@property数据方法的json数据文件?

我有一个像这样的Specflow功能,它最初来自Specflow Excel。

Feature: EndToEndId
Scenario Outline: Single Payment
Given a client <clientNo> called <cName>
And a broker <bName> with book ref <bRef>
When a deal to <buyOrSell> an amount <fromAmt> of <ccy1> for <ccy2> for value <vDate> at client rate <cRate> and bank rate <bRate>
Then create a deal <dealNo> with client amt <toCAmt> and cover amt <coverAmt> and PnL <PnL> and profit rate <pRate> and <bYes>
And add beneficiary <benName> and country <ctry> and pay type <payType> and charge <charge> and <abYes>
When a credit file <c1> with <c1Name> for <c1Amt> <c1Ccy> for value <c1Date> with ref <EndToEndId1>
Then CreditNotice gets <fIn1Type> for client <fIn1Client>
Examples: 
| case                 | clientNo | cName        | bName   | bRef       | buyOrSell | fromAmt | ccy1 | ccy2 | vDate | cRate             | bRate             | dealNo | toCAmt           | coverAmt         | PnL     | pRate    | bYes | benName     | ctry | payType | charge | abYes | c1    | c1Name           | c1Amt            | c1Ccy | c1Date | EndToEndId1      | fIn1Type       | fIn1Client       |
| T1: 99549 ######     | 99549    | Gherkin Test | MERCURY | 01W3RG5638 | SELL      | 100000  | EUR  | GBP  | SP    | 0.89435           | 0.89935           | ###### | 89435            | 89935            | 500     | 1        | yes  | Gherkin Ben | GB   | CHAPS   | NONE   | yes   | 99549 | Gherkin Test     | 100000           | EUR   | SP     | 99549 ######     | FullFundsIn    | Gherkin Test     |

要将与json文件一起用于数据,我是否需要像这样再次定义每个属性:

@property:clientNo=clientNo
@property:cName=cName
@property:bName=bName

和一个类似这样的json数据文件:

{
"case": "T-9: 99549 ######",
"clientNo": "99549",
"cName": "Gherkin Test",
"bName": "MERCURY",
"bRef": "01W3RG5638",
"buyOrSell": "SELL",
"fromAmt": "100,000",
"ccy1": "EUR",
"ccy2": "GBP",
"vDate": "SP",
"cRate": " 0.894350 ",
"bRate": " 0.894350 ",
"dealNo": "######",
"toCAmt": "89,435.00",
"coverAmt": "89,435.00",
"PnL": "0.00",
"pRate": " 1.000000 ",
"bYes": " yes ",
"benName": "Gherkin Ben",
"ctry": "GB",
"payType": "CHAPS",
"charge": "NONE",
"abYes": "yes",
"c1": "99549",
"c1Name": "Gherkin Test",
"c1Amt": "100,000",
"c1Ccy": "EUR",
"c1Date": "SP",
"EndToEndId1": "99549 ######",
"fIn1Type": "FullFundsIn",
"fIn1Client": "Gherkin Test"
},
{
"case": "T-8: 1234 1234",
"clientNo": "99549",
"cName": "Gherkin Test",
"bName": "JUPITER",
"bRef": "01W3RG5639",
"buyOrSell": "SELL",
"fromAmt": "200,000",
"ccy1": "EUR",
"ccy2": "GBP",
"vDate": "SP",
"cRate": " 0.894350 ",
"bRate": " 0.894350 ",
"dealNo": "######",
"toCAmt": "178,870.00",
"coverAmt": "178,870.00",
"PnL": "0.00",
"pRate": " 1.000000 ",
"bYes": " yes ",
"benName": "Gherkin Ben",
"ctry": "GB",
"payType": "FASTER",
"charge": "NONE",
"abYes": "yes",
"c1": "99549",
"c1Name": "Gherkin Test",
"c1Amt": "200,000",
"c1Ccy": "EUR",
"c1Date": "SP",
"EndToEndId1": "1234 1234",
"fIn1Type": "BankRec",
"fIn1Client": "Gherkin Test"
}

感谢您提供一些关于如何将json数据导入specflow特性文件的提示。

SpecFlow.ExternalData插件目前仅限于一个参数
请在上对功能请求投赞成票https://support.specflow.org/hc/en-us/community/posts/360015106078-Allow-multiple-parameters-to-be-used-with-External-Data-plugin以便在我们的积压工作优先级中获得更高的优先级。

作为Nuget包的一部分,有一个名为Specflow.Contrib.JsonData的单独插件,它接受JSON数据作为特定流场景的输入。它是Specflow.ExternalData插件的扩展。它还接受多个属性。退房https://libraries.io/nuget/SpecFlow.Contrib.JsonData.

最新更新