如何处理空手道测试中的签名请求?

2024-02-29

首先,感谢构建空手道,它对于测试 API 和 UI 非常有用。我们正在使用它来测试许多端点,但我们想知道是否有一种方法或哪种方法是处理带有签名作为标头中请求的一部分的请求的最佳方法。

在我们的例子中,我们有两个标头:

  • ApiKey:这个值总是相同的
  • 签名:该值取决于请求体内容

有没有办法在请求执行之前根据请求正文内容注入签名值?

在这里您可以看到请求的两个示例

样本1:

   * url 'https://dev.sample.com'
   * path '/api/user/getAll' 
   * header Content-Type = 'application/json'
   * header ApiKey = 'XXX' 
   * header Signature = 'YYY'
    And request {  }
    When method POST
    Then status 200    

样本2:

   * url 'https://dev.sample.com'
   * path '/api/user/getAll' 
   * header Content-Type = 'application/json'
   * header ApiKey = 'XXX' 
   * header Signature = 'ZZZ'
    And request { name: 'John' }
    When method POST
    Then status 200    

Thanks


Karate 有一个用于生成标头的“钩子”,但截至目前它还不“知道”当前构建的请求正文 + 标头:https://github.com/intuit/karate#configure-headers https://github.com/intuit/karate#configure-headers

我们在这里收到了类似的请求,并正在考虑添加此功能:如何在 Karate DSL 中进行 REST 调用之前检索原始请求内容? https://stackoverflow.com/q/64700645/143475

也许 OAuth 示例将为您提供目前案例的前进方向:https://stackoverflow.com/a/55055111/143475 https://stackoverflow.com/a/55055111/143475

请随意提出增强请求,我们可以将其纳入下一版本(在您的帮助下进行测试)。我在想——如果你能打电话怎么办karate.get('request')来自标头 JS 函数。

但现在你需要做的就是做这样的事情:

* def body = { some: 'json' }
* karate.set('requestBody', body)
* url someUrl
* request body
* method post

并且在header.js功能

function fn() {
  var body = karate.get('requestBody');
  var sign = Utils.sign(body);
  return { Signature: sign };  
}

编辑:这将在空手道 1.0 及以后版本中实现:https://github.com/intuit/karate/issues/1385 https://github.com/intuit/karate/issues/1385

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理空手道测试中的签名请求? 的相关文章

随机推荐

  • 同一应用程序的多个实例在堆栈中生成

    如果有一个应用程序有登录活动 并且它通过单击图标启动 此登录活动也可以由另一个意图启动 问题是当活动运行时 通过触摸应用程序图标启动 当它收到不同的意图调用时 它会启动另一个登录活动 当收到不同的意图调用来启动登录活动时 如何在关闭当前正在
  • 在 Enum 中搜索字符串并返回 Enum

    我有一个枚举 public enum MyColours Red Green Blue Yellow Fuchsia Aqua Orange 我有一个字符串 string colour Red 我希望能够返回 MyColours Red f
  • MATLAB > MEX 文件 > 托管 DLL 中的内存泄漏

    My MEX file http en wikipedia org wiki MEX file用 C CLI 编写并调用用 C 编写的 DLL 当 gcnew 一个对象时 当 mexFunction 返回时它不应该被垃圾收集吗 它的引用应该
  • 如何使用谷歌地图 API 制作一个在特定半径范围内搜索项目的表单?

    我正在研究一个website https jsfiddle net n8aofgtz 9 embedded result我想在谷歌地图上围绕当前位置或一些手动地址画一个圆圈 用户可以选择决定是否要围绕当前位置或他们提供的某个随机地址进行环绕
  • 从 DataGridViewComboBoxColumn 选择值?

    我想知道如何选择 DataGridViewComboBoxColumn 值作为默认值 在 DataGrid 中 有 4 列以及一个 DataGridViewComboBoxColumn 数据表正在绑定网格 但对于 DataGridViewC
  • 撤消/重做实施[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给我一些如何实现撤消 重做功能的想法 就像我们在文本编辑器中一样 我应该使用什么算法以及我可以阅读什么 谢谢 我知道撤消类型有两大类
  • 路径中的 SVG 图像 - HTML

    我遇到了一个棘手的问题 我似乎无法弄清楚 它有很多不同的文件 所以我们先不添加任何代码或文件文档 所以我得到了一个 SVG 图像 上面有很多方形路径 我在 Inkscape 中的一条方形路径上放置了一张方形图像 然后我将 SVG 文件嵌入到
  • R:使用 mouseadds lm.cluster 进行聚类稳健标准误差 - 子集和权重的误差

    我正在尝试使用 mouseadds 包中的 lm cluster 函数来获取多重插补数据集的稳健聚类标准误差 我能够运行它的标准版本 但当我尝试添加子集或权重时出现以下错误 Error in eval substitute subset d
  • .height(item.height()) jquery 在 IE 中太慢了!备择方案?

    我正在尝试设置绝对定位项目的高度以匹配其容器元素的高度 问题是这些元素有数百个 标题中的标准代码在 chrome 中运行得很好 但在 IE 中却拖得很慢 我应该如何缓解这个问题 Too SLOW in IE var starttime ne
  • 反射,从方法中获取返回值

    我们如何执行一个方法并从Reflection中获取返回值 Type serviceType Type GetType class true var service Activator CreateInstance serviceType s
  • 为什么我无法访问静态函数中的私有构造函数,如下所示? [复制]

    这个问题在这里已经有答案了 我目前正在编写一个弱引用资源管理器 如下所示 编译器抱怨管理器有一个私有构造函数 我的问题是 为什么我无法访问静态函数中的私有成员函数 ifndef TENSOR MANAGER H define TENSOR
  • 我需要实现什么接口才能允许 VBA 中的 ForEach 作用于用 delphi 编写的 COM 对象?

    想象一下 我想在 VBA 伪代码 中执行类似的操作 并假设我有一个可枚举属性 IDList Dim MyObject object set MyObject CreateObject MyObjectClass for each Item
  • 无法安装h5py

    我正在尝试安装h5py http www h5py org 但是当我这样做时pip install h5py or use python setup py install从源代码来看 致命错误 hdf5 h No such file or
  • speex解码出错

    我使用 speex 对一些音频数据进行编码并通过 UDP 发送 然后在另一端对其进行解码 我用 speex 进行了一些测试 发现如果我在编码后立即解码数据包 则解码后的数据与原始数据相差甚远 缓冲区开头的大部分字节都是 0 因此 当我解码通
  • 任意多个节点的贝尔曼-福特距离向量算法

    我正在尝试为模拟路由器的类编写一个程序 到目前为止我已经设置了基础知识 路由器 可以通过模拟服务器向连接到该服务器的其他 路由器 发送和接收数据包 每个数据包仅包含该路由器的距离向量 当路由器接收到数据包时 它应该使用贝尔曼 福特算法相应地
  • 我可以在“coqtop - nois”下定义策略吗?

    coqtop nois Welcome to Coq 8 7 0 October 2017 Coq lt Ltac i idtac Toplevel input characters 0 4 gt Ltac i idtac gt Error
  • 如何在 Windows 中使用 PuTTY 创建 SSH 隧道?

    我需要在 Windows 中使用 PuTTY 创建 SSH 隧道 这与 Linux 中的命令相同 ssh fN L 2000 SomeIp 2000 myusername myLinuxBox 我在 PuTTY 中尝试了许多选项 包括将 G
  • 将大型 JSON 对象传递到新窗口中的另一个页面。

    如果这个问题已经得到回答 我提前道歉 我已经用谷歌搜索了几个小时了 但仍然没有找到任何似乎可以回答我的确切问题的东西 本质上 我有一个非常复杂 高度风格化的视图 它显示从数据库中提取的特定于用户的数据 我已将数据捕获为 JSON 对象 并使
  • 将透明 .PNG 图像传输到屏幕上

    你好 我有一个图像 上面画了一个黑色矩形 它的背景是透明的 该文件保存为 png clear png 然后我有另一个图像 它只是保存为 jpeg 的纯红色背景 background jpeg 我试图做的是使clear png 中的黑色矩形显
  • 如何处理空手道测试中的签名请求?

    首先 感谢构建空手道 它对于测试 API 和 UI 非常有用 我们正在使用它来测试许多端点 但我们想知道是否有一种方法或哪种方法是处理带有签名作为标头中请求的一部分的请求的最佳方法 在我们的例子中 我们有两个标头 ApiKey 这个值总是相