我直到今天为止:

我有get_jwt.feature,并将其称为karate-config.js的一部分。因为我使用了一个帐户[email protected],所以我只需要一个jwt,就可以在各种情况下重复使用它。在这种情况下,callSingle起到了吸引作用。

今天:

突然我需要两个我不想为每种情况生成的帐户的jwt,callSingle不能完成此任务,因为它确实可以执行其应做的工作。现在我有了一个怪异的主意,我可以简单地创建两个文件,分别为get_jwt.featureget_jwt_user2.feature,并分别调用它们。

所以我的问题是:有更好的方法吗?

最佳答案

您可以使用“ 2级”通话。因此,将callSingle()指向调用get_jwt.feature 2次(可能带有不同参数)的JS函数,然后返回JSON。下面的伪代码。首先是get_jwts.js

function fn(users) {
  var jwt1 = karate.call('get_jwt.feature', users.user1);
  var jwt2 = karate.call('get_jwt.feature', users.user2);
  return { jwt1: jwt1, jwt2: jwt2 };
};


然后在karate-config.js

config.jwts = karate.callSingle('classpath:get_jwts.js', users);


现在,您应该可以执行以下操作:

* print jwts.jwt1
* print jwts.jwt2


您还可以执行功能->功能调用链。让我知道这是否有效!

编辑:在评论中查看Babu的答案,看来您可以将数组传递给callSingle()!这样可能很方便:)

10-08 19:30