当前位置: 首页 > 知识库问答 >
问题:

在空手道模拟(空手道网)中,我们如何覆盖请求头值?

戚成礼
2023-03-14

目标:

  1. 我们希望少数API调用应该转到mock-server(https://192. x. x. x: 8001),而其他API调用应该转到实际的下游应用服务器(https://dev.api.acme.com)

设置:

  1. 在本地,模拟服务器在端口8001上有独立的jar。例如https://192. x. x. x: 8001
  2. 在应用程序配置文件(config.property)下游系统(需要模拟)定义mockserver IP i. ehttps://192. x. x. x: 8001

测试场景和问题:

1.

 Scenario: pathMatches('/profile/v1/users/{id}/user')
        * karate.proceed('https://dev.api.acme.com')
        * def response = read ('findScope.json')
        * def responseStatus = 200ˀˀ
        * print 'created response is: ' + response

现在,当我们通过邮递员或功能文件点击API请求时,它就会执行空手道。正确进入https://dev.api.acme.com/profile/v1/users/123/user而不是192。x、 x.x.但是,在此请求中,主机指的是https://192.x.x.x:8001而不是https://dev.api.acme.com这给我们带来了问题。

在这种情况下,我们如何覆盖请求头?我试过空手道。设置,也可以使用标题主机=https://192.x.x.x:8001但运气不好。

谢谢!

共有1个答案

诸腾
2023-03-14

>

  • 请看1.0版本是否工作:https://github.com/intuit/karate/wiki/1.0-upgrade-guide

    不幸的是,httpsproxying可能无法像前面提到的那样工作。如果您依赖于此,我们可能需要您的帮助(代码贡献)来实现此功能

    如果<代码>主机< /Cord>头仍然不可变,这也可以被认为是一个特性请求,这里我也请您考虑贡献代码。

  •  类似资料:
    • 现在有什么方法可以这样做,还是这是一个特性请求?

    • 我试图在我的POST请求中传递一个应用程序特定的头,但是我得到了错误-步骤头XXX-XXX没有一个匹配的胶水代码。 如何在请求中指定特定于我的应用程序的头。以下是我正在提交的示例请求:

    • 我们一直在围绕空手道netty的模拟功能进行一些概念验证工作,我们想知道以下方面的潜在未来功能: 在服务器启动后动态添加/删除模拟功能(例如,将模拟功能更紧密地耦合到单个测试用例) 在启动时利用多个模拟功能(或嵌套功能) 谢了麦克

    • 我使用正则表达式删除了XML中一些不需要的项。现在,我需要打印所有包含多个子元素的包含服务节点。 这是我使用的代码; 如果我运行这个,我会得到下面的响应。 但是,我可以将选定的元素打印到包括服务节点之外。请帮帮忙!

    • 我95%的自动化框架是在空手道,工作得很好。我们需要检查应用程序日志中显示的中间结果的功能很少(不在Json响应中)。我写了一个外壳脚本,它在从邮递员手动发送请求后验证Linux机器上的应用程序日志。我使用eclipse的JSCH库调用这个脚本。 有没有什么方法可以让我从空手道发送请求,然后调用我的JSCH类进行验证,这样就可以避免手动发送请求的步骤? 谢谢,阿比

    • 我正在尝试使用空手道进行e2e测试,并已从最低设置开始。我想在用于测试,但karate报告该文件不是js函数,因此测试无法获取配置: 这是我的: 这是我的测试: 这是测试运行程序: