automation - 使用 karate.call 传递多个参数
问题描述
我试图在第二个功能文件中调用 API,从第一个功能文件传递参数。说从第一个 API 响应返回的令牌和当前页面值。这些必须作为第二个 API 的参数传递
* def activeDetails =
"""
function(times){
for(i=0;i<=times;i++){
karate.log('Run test round: '+(i+1));
karate.call('getActiveRouteDetails.feature', { token: token, currentPage: i });
}
java.lang.Thread.sleep(1*1000);
}
"""
* call activeDetails totalPages
在我的第二个功能中,我能够打印传递的值,但无法传递参数。你能帮我么
And print currentPage
And print token
And param pageNumber = '#currentPage'
And param token = token
解决方案
当您在 JavaScript 块中时,会有一个细微的差别。请阅读:https ://github.com/intuit/karate#karate-expressions
进行此更改:
var result = karate.call('examples/getDetails.feature', { token: token, currentPage, i });
并且请不要使用变量名current page
,如果需要帮助,请向 JavaScript 程序员朋友寻求帮助。
另请注意,最佳做法是尽可能避免 JS 代码和循环:https ://github.com/intuit/karate#loops
推荐阅读
- java - 如何在本机c ++ jni中实现java类型数组
- javascript - 如何防止 Prettier 将测试代码从 1 行变为多行
- json - 如何将 json 列表传递到 Flutter 中的 http 请求(post)正文?
- kotlin - Kotlin 在相乘时给出错误的结果
- c# - 显示确认框,然后根据答案编辑文本框字段
- python - 获取由 mayavi 颜色图分配的颜色
- javascript - 在循环的每次迭代中使用 setState 是不好的做法吗?
- php - 来自 symfony 命令的呼叫路由
- amazon-web-services - 使用 Microsoft.Configuration.ConfigurationBuilders 的 AWS SSM 自定义提供程序
- sql - 为什么在这些查询中选择的元组数量不同