我如何使用 1 个参数调用空手道功能文件中的 js 函数
How can i call the js function in karate feature file with 1 argument
在我的一个测试场景中,我发出了请求,我想从对数组的响应中收集数据,为此,我在 karate-config.js
中定义了接受一个参数的 js 函数。
当我调用它时,我总是得到同样的错误,但是当我使用另一个具有静态值的函数时它工作得很好,但是当我尝试传递动态对象(来自预请求的响应)时它失败。
这是错误:
Logger feature call failed: classpath:integration/base_oai_pmh_tests/mod-configuration-integration-cases.feature
arg: null
mod-configuration-integration-cases.feature:14 - Failed generating bytecode for :33
我传递给函数的对象没问题,它绝对不是 null。
here is the function into config file
here is the scenrio with js function usage
我也试过这些可能的解决方案,但都失败了:
- 在后台定义js函数
- 在场景中定义js函数
如果getConfigurationEntryIds
是一个JS函数,就这样做:
* def configIds = getConfigurationEntryIds(configResponse)
空手道不支持箭头函数,我们应该使用 karate.map 而不是 js 映射函数,如果您想从 json 数组中收集数据,则使用 JSON路径会更好:def configIds = configResponse.configs[*].id
在我的一个测试场景中,我发出了请求,我想从对数组的响应中收集数据,为此,我在 karate-config.js
中定义了接受一个参数的 js 函数。
当我调用它时,我总是得到同样的错误,但是当我使用另一个具有静态值的函数时它工作得很好,但是当我尝试传递动态对象(来自预请求的响应)时它失败。 这是错误:
Logger feature call failed: classpath:integration/base_oai_pmh_tests/mod-configuration-integration-cases.feature
arg: null
mod-configuration-integration-cases.feature:14 - Failed generating bytecode for :33
我传递给函数的对象没问题,它绝对不是 null。
here is the function into config file
here is the scenrio with js function usage
我也试过这些可能的解决方案,但都失败了:
- 在后台定义js函数
- 在场景中定义js函数
如果getConfigurationEntryIds
是一个JS函数,就这样做:
* def configIds = getConfigurationEntryIds(configResponse)
空手道不支持箭头函数,我们应该使用 karate.map 而不是 js 映射函数,如果您想从 json 数组中收集数据,则使用 JSON路径会更好:def configIds = configResponse.configs[*].id