我如何使用1个参数在空手道特征文件中调用js函数

时间:2020-07-05 15:19:41

标签: javascript java karate web-api-testing

在我的一种测试场景中,我发出了请求,并且希望从响应中收集数据到数组,为此,我在karate-config.js中定义了js函数,该函数接受一个参数。

当我调用它时,总是会遇到相同的错误,但是当我使用具有静态值的另一个函数时,它会很好地工作,但是当我尝试传递动态对象(来自预请求的响应)时,它将失败。 这是错误:

记录器功能调用失败:classpath:integration / base_oai_pmh_tests / mod-configuration-integration-cases.feature
arg:空
mod-configuration-integration-cases.feature:14-无法为:33生成字节码

我传递给函数的对象还可以,并且绝对不能为空。

here is the function into config file
here is the scenrio with js function usage

我也尝试过这些可能的解决方案,但它们也都失败了:

  • 在后台定义js函数
  • 在场景中定义js函数

2 个答案:

答案 0 :(得分:0)

如果getConfigurationEntryIds是JS函数,只需执行以下操作:

* def configIds = getConfigurationEntryIds(configResponse)

答案 1 :(得分:-1)

空手道不支持箭头功能,我们应该使用karate.map而不是js map函数,如果您想从json数组中收集数据,那么使用JSON路径会更好:def configIds = configResponse.configs [ *]。id