空手道针对SocketTimeoutException的重试机制

2023-12-14

我们有一个系统,用于在测试期间发出一些 PUT 请求。问题是,目前该系统的资源存在一些问题,有时无法及时响应。我们无法将读取超时值增加到大于 60 秒的值,原因有两个:如果系统响应速度不快,则很可能根本不会响应;其次,我们使用的代理在 60 秒时超时。

我知道this问题,但是等待Http or 等待端口不符合我们的要求,因为端口可用,并且没有运行状况端点告诉我们 PUT 请求是否会成功或只是丢失。

我们还能做些什么吗?

示例功能:

  Background:
    * url dep_url
    * configure headers = read('classpath:package/headers/headers.json')
    * retry until responseStatus !== 429

  Scenario: Create entity
    Given request read('classpath:package/body/' + file)
    When path '/entity/' + entity[index]
    And method put
    Then assert responseStatus == 200 || responseStatus == 201

当抛出 SocketTimeoutException 时我们需要重试,例如:

java.net.SocketTimeoutException: Read timed out, http call failed after 253 milliseconds for url

好吧,然后尝试轮询:https://stackoverflow.com/a/56799845/143475

并将该方法与您可以使用 JS 的事实相结合try-catch在空手道中:https://stackoverflow.com/a/67024149/143475

所以也许是这样的:

* def failed = false
* eval try { karate.call('called.feature') } catch (e) { karate.set('failed', true) }

您现在应该能够找到解决方案。请发布您的想法。

编辑:对于那些对调用第二个功能文件感觉不好的人,您可以在一个文件中完成所有操作,如下所示:

Feature:

Scenario:
* call read('@called')

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

空手道针对SocketTimeoutException的重试机制 的相关文章

随机推荐

  • Spring Data Repository 的方面建议不起作用

    我正在尝试为存储库创建一些切入点和建议之前 以便在 Spring Boot 中的 Spring Data 中启用对实体管理器的某些存储库的过滤 我的项目中也有 Web 和服务层 AspectLogging 适用于两者 但我不能对存储库做同样
  • 如何创建每个类别的链接

    我正在尝试创建一个显示所有类别的导航栏 然后通过单击每个类别 它会链接到该类别中的所有帖子 我在下面尝试过 它显示所有类别 但不显示为链接 for category in site categories div class categori
  • 更改框架版本会导致:无法加载文件或程序集PresentationFramework?

    我正在开发WPF应用程序 该应用程序首先针对3 0框架 当我尝试使其在 4 0 上运行时 出现以下异常 System IO FileNotFoundException 是 未处理的消息 无法加载文件 或装配 PresentationFram
  • 将值从一个字段拆分为两个字段

    我有一个表字段membername其中包含用户的姓氏和名字 是否可以将它们分成 2 个字段memberfirst memberlast 所有记录均采用 名字姓氏 格式 不带引号且中间有空格 不幸的是 MySQL 没有分割字符串的功能 但是您
  • 如何重建bluez

    我怎样才能重建bluez 是否可以 例如 我想更改 avctp c 中的某些内容 我从他们的网站下载了最新的 bluez 版本并进行了我需要进行的更改 现在 我如何才能使更改生效 即我需要做什么来重建蓝牙 注意 我使用的是Ubuntu 12
  • Pandas unstack问题:ValueError:索引包含重复条目,无法重塑

    我正在尝试用 pandas 解开多索引 并且不断收到 ValueError Index contains duplicate entries cannot reshape 给定一个包含四列的数据集 id 字符串 日期 字符串 位置 字符串
  • 根据窗口大小调整表单的标签和字体大小

    我正在寻求根据窗口大小调整标签大小及其字体大小的帮助 也就是说 当窗口调整大小时 标签本身会调整其字体和背景框以执行相同的操作 我知道我正在表单的 调整大小 事件上触发某些内容 但我不知道是什么 有人可以帮忙吗 这是 C 语言 但它可能对你
  • 使用soap 1.2的WCF生成带有soap 1.1参考的wsdl

    我正在创建一个 WCF 服务 它必须有一个 SOAP 1 2 端点 该服务使用以下自定义绑定
  • 超级账本中的第一个网络

    我正在尝试在 Hyperledger Fabric 中开发我的第一个网络 使用以下文档http hyperledger fabric readthedocs io en latest build network html 我已经完成设置直到
  • 如何查找并突出显示 ActiveSheet 中所有出现的多个字符串?

    我已经找到了解决方案 但代码太长了 然后我决定搜索一种将我想要查找和突出显示的所有单词插入到单个查找方法中的方法 我遇到了一些使用数组来执行此操作的想法 并使用这 3 个代码来编写我的代码 this this and this 但我是 VB
  • Ansible 动态选择主机组

    我的库存文件如下所示 host group 1 x x x 1 x x x 2 host group 2 x x x 3 x x x 4 现在我想根据脚本返回的参数在这些组上选择并执行任务 该剧本如下所示 host 127 0 0 1 ta
  • Composer 不会在私有存储库中加载私有存储库?

    因此 我尝试利用 Composer 包的强大功能来使我的应用程序更加模块化 所以我的主要应用程序现在依赖于一个私有存储库 我像这样拉入 repositories type vcs url tenant package git require
  • Powershell创建数组的数组

    我正在尝试使用 powershell 将数据推送到 REST api http influxdb com docs v0 8 api reading and writing data html 服务器期望的数据如下 name hd used
  • 找不到与绑定 NetTcpBinding 的端点的方案 net.tcp 相匹配的基地址。基地址方案是[http]

    我的 WCF 服务有这样的配置 该服务在 IIS Express 端口号 50187 上运行 该服务托管在 Visual Studio 2017 的 IIS Express 上
  • C# 数组逐元素差异的方法(导数近似)? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我通常使用 python 但正在学习 C C 中是否有一个预先存在的类 用于获取数组的逐元素差异 以基本上获得导数 例如 python 中的 numpy diff 根据这一页 n
  • 如何在本地运行 travis-ci

    我宁愿不必推动每一个微小的改变 travis yml以及我为了运行构建而对源代码所做的每一个小更改 使用jenkins 您可以下载jenkins并在本地运行 特拉维斯提供这样的东西吗 注意 我看过 travis ci cli 并下载了它 但
  • 如何将字符串转换为ArrayList?

    在我的字符串中 我可以有任意数量的以逗号分隔的单词 我希望将每个单词添加到 ArrayList 中 例如 String s a b c d e 尝试类似的东西 List
  • 在 LINQ 查询中使用内置 sql 函数?

    是否可以在 LINQ 查询中使用内置 sql 函数 例如 user name 如果没有 我可以使用其他东西吗 这取决于提供商 例如 在针对 SQL Server 的 LINQ to Entities 中 您可以使用SqlFunctions
  • 单击鼠标即可获取 MS 图表中的标记位置

    我正在使用 MS Charts 制作图表 现在图表有我想要获取坐标的标记点 如果用户单击标记点 我希望图表中具有交互性 以便单击标记点时我可以检索标记点的坐标 x 轴和 y 轴 例如对于图表 单击橙色点或蓝色点时 我想获取该点的坐标 例如第
  • 空手道针对SocketTimeoutException的重试机制

    我们有一个系统 用于在测试期间发出一些 PUT 请求 问题是 目前该系统的资源存在一些问题 有时无法及时响应 我们无法将读取超时值增加到大于 60 秒的值 原因有两个 如果系统响应速度不快 则很可能根本不会响应 其次 我们使用的代理在 60