首页 > 解决方案 > 空手道名称不适用于嵌套功能文件调用

问题描述

我有一个功能文件 A.feature 调用 B.feature。kara-name 在 B.feature 中定义,我正在使用 A.feature 文件执行 Gatling 测试。在这个用例中,karate-name 没有出现在 Gatling 报告中。但是,如果我使用包含空手道名称的 B.feature,protocol.nameResolver 工作正常。这个嵌套的功能文件用例有什么限制吗?

我在 gatling 性能测试场景中有以下代码,当直接调用包含空手道名称的 B.feature 文件时,它可以正常工作。

val protocol = karateProtocol() protocol.nameResolver = (req, ctx) => req.getHeader("karate-name")

//从A.feature调用B.feature文件

* def verifyPayment = call read('classpath:common/servicecall/B.feature@verifypaymentcall') { amount: '#(amount)', currencyCode: '#(currencyCode)', formOfPaymentType: '#(formOfPaymentType)', ccSecurityValue: '#(ccSecurityValue)',  pos: '#(pos)'}

//在 B.feature 文件中声明 karate-name 如下代码片段所示。

  @verifypaymentcall
  Scenario: verify payment api call
    Given url smartRouterPXUrl
    And header karate-name = 'Verify_Payment_API'
    * header Accept = 'application/xml'
    * request verifyPaymentRQ

问候德巴扬

标签: karate

解决方案


推荐阅读