我在功能文件A中有两个参数,并将这些值传递给另一个名为B的功能文件。
但是我无法按功能文件B中的预期检索值
代码:
功能文件A:
And def Response = response
And def token = response.metaData.paging.token
And def totalPages = response.metaData.paging.totalPages
* def xyz =
"""
function(times){
for(currentPage=1;currentPage<=times;currentPage++){
karate.log('Run test round: '+(currentPage));
karate.call('ABC.feature', {getToken:token, page:currentPage});
}
java.lang.Thread.sleep(1*1000);
}
"""
* call xyz totalPages
功能文件B:
* def token = '#(getToken)'
* def currentPage = '#(page)'
但是输出是
#getToken
#page
什么是最好的方法?这些值以供进一步利用。
答案 0 :(得分:2)
尝试一下:
* def token = getToken
* def currentPage = page
这是另一回事,调用功能中定义的任何变量都是可见的,例如token
,因此大多数时候您不需要传递参数:
* print token
* print totalPages
请尽可能避免使用JS for循环:https://github.com/intuit/karate#loops-实际上,您似乎错过了空手道推荐的数据驱动测试方法:https://github.com/intuit/karate#the-karate-way
如果您仍然遇到问题,请执行以下过程:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue