Karate 如何设置基本API?我看到第一个API添加了双引号';s的反应
12:59:28.447[main]INFO com.intuit.karate.StepDefs-[print]“5ca627bf3edd851238e59c9e”2019年4月16日12:59:28 PM org.glassfish.jersey.logging.LoggingInterceptor log严重:2*在主线程上发送客户端请求2>获取Karate 如何设置基本API?我看到第一个API添加了双引号';s的反应,karate,Karate,12:59:28.447[main]INFO com.intuit.karate.StepDefs-[print]“5ca627bf3edd851238e59c9e”2019年4月16日12:59:28 PM org.glassfish.jersey.logging.LoggingInterceptor log严重:2*在主线程上发送客户端请求2>获取 你的帖子真的很难理解 试用 Given path '/api/metrics/product/ABC' When method get *
你的帖子真的很难理解 试用
Given path '/api/metrics/product/ABC'
When method get
* def id = get response
* print id
* def basePathProducts = '/another/api/' + id + '/param'
Given path basePathProducts
When method GET
Then status 200
有关更多信息,请参阅本手册:
编辑:
您的参数有问题
Given url yourURLVariable + 'another/api/'+ id + '/param'
给出:
* def id = "5ca627bf3edd851238e59c9e"
* print id
因此,您的变量
id
是“5ca627bf3edd851238e59c9e”
而不是5ca627bf3edd851238e59c9e
我认为您将事情过度复杂化了,并且忽略了路径
语法是为您通常需要做的事情而设计的
不要def basePathProducts
执行此操作,请参见如何将id
变量轻松插入路径:
13:24:19.783 [print] 5ca627bf3edd851238e59c9e
我添加这些是为了从响应中删除第一个和最后一个字符,在我的例子中是双引号。谢谢你们的回应 谢谢你的回复,阿德里安,我无法编辑代码,因为我通过手机(远离我的机器)发布了代码。第一个API的响应是一个字符串,因此如何避免将双引号添加到第二个url。我确实尝试了“给定url”,直到看到在url中添加了%22。提前谢谢。@Knight我编辑了我的答案。问题在于你在响应中得到的值,在stringYes Adrien中有
“
,我添加了一个JS函数来删除字符串中的引号并附加到URL中。感谢编辑Thomas。第一个响应中的双引号(“5ca627bf3ghut56c9e”)将作为%22追加到URL中。如何跳过此操作?@Knight*def id=get response
看起来有误,请查看文档和示例,有很多方法可以清晰地提取您需要的数据-除非您的响应是字符串-然后在需要时执行替换操作,没有注意到“get”按钮“来到这里……这是一次失败的尝试:p。是的,我得到的回应是一个字符串。
Given path 'another', 'api', id, 'param'
* def newresp = function(id){ return id.slice(1, -1); }
* def id = newresp(response)