空手道框架中如何在后期请求中传递多个参数?

时间:2019-01-12 07:28:05

标签: api karate

我有一个JSON数据文件,其数据类似于

private Bitmap getAlbumImage(String path) {
    android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    mmr.setDataSource(path);
    byte[] data = mmr.getEmbeddedPicture();
    if (data != null) return BitmapFactory.decodeByteArray(data, 0, data.length);
    return null;
}

首先,我想读取此数据,然后当Wheels.value ==是时,我想点击一个API,否则点击另一个API 另外,我想知道如何在请求后或从文件中传递多个参数。

发布请求数据如下:

{
  "Status": "Pending",
  "role": "manager",
  "client": "android",
  "user": "test@abc.com",
  "eTyres":
  {
    "Wheels": {
      "title": "Alloy Wheel",
      "value": "Yes"
    }
 }
}
  

我正在通过邮递员中的“表单数据”传递数据。

预先感谢

1 个答案:

答案 0 :(得分:1)

您的问题很难理解,我假设您想遍历某些给定的JSON数组并执行一些操作。听起来您不是在“测试”并且滥用空手道!

要遍历JSON数组,请使用* def data = { "Status": "Pending", "role": "manager", "client": "android", "user": "test@abc.com", "eTyres": { "Wheels": { "title": "Alloy Wheel", "value": "Yes" } } } * eval data.eTyres.Wheels.value == 'Yes' ? karate.call('api1.feature') : karate.call('api2.feature') 。请参阅文档:https://github.com/intuit/karate#data-driven-features

要执行条件操作,请阅读文档的这一部分:https://github.com/intuit/karate#conditional-logic

要执行“表单数据”,请阅读以下内容:https://github.com/intuit/karate#form-field

api1.feature

如何实现api2.featuredata是您的功课。请记住,在这两种方法中,您仍然都可以访问contextObject.googleRefreshToken = refreshToken变量。并且请阅读文档和示例!