首页 > 解决方案 > 如何替换空手道中的变量

问题描述

我需要替换 URL 中的值

test/lambda-migration/v1/quote'

v1 需要参数化以获取不同的值,这些值将来自另一个特征文件。我的代码看起来像这样:

特征文件-1

场景大纲:Lambda API 注册

给定 url ApiAdminURL

json myReq = read('swagger-lambda.json')

并要求myReq

当方法发布时

然后状态

def responsefromsubscriber = call read('Subscriber.feature') { InvokeStatus: '#(InvokeStatus)', version: '<version>' }

match responsefromsubscriber.InvokeStatus == 200

Examples: 
  | responseCode | version |
  |          200 | v1      |

特征文件 - 2

给定 url internalGateway

print 'Version: ' , version 

def LocalVersion = version

print 'LocalVersion: ' , LocalVersion 

和路径'test/lambda-migration/#(LocalVersion)/quote'

和标题Authorization = accessTokenforInvokation

当方法得到

这不是将 #(LocalVersion) 替换为 v1

标签: karate

解决方案


And path 'test/lambda-migration/#(LocalVersion)/quote'

这是错误的。请阅读这部分文档:https ://github.com/intuit/karate#rules-for-embedded-expressions

另请注意,它path支持逗号分隔的形式:

尝试:

And path 'test/lambda-migration', LocalVersion, 'quote' 

推荐阅读