空手道针对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的重试机制 的相关文章

  • Karate 0.9.5:无法在并行执行中获取命令行选项

    我正在尝试将我的项目更新到最新的空手道版本 0 9 5 除了并行执行之外 一切正常 它没有考虑我使用命令行 Dkarate options 运行的标签 这是我的 TestParallel java 类 public class QaaTes
  • Karate-Gattle:将 uriPatterns 列表添加到 karateProtocol() 中

    我有一个 uriPatterns 的 Collection String 包含在karateProtocol 有没有办法迭代集合并添加MethodPause 本例中为 Nil 无需硬编码吗 如果您看到内部代码PreDef scala htt
  • Karate UI:通过 CSS 定位文本

    我经常遇到空手道看不到的奇怪的可见页面文本 可能是由于一些我不完全理解的时髦 JS 魔法 Example image shows text on the page generated after clicking on a translat
  • 如何验证空手道 BDD 响应中收到的日期

    我的响应中有两个字段 响应中有两个参数 日期1 2018年12月18日 日期2 2018年11月23日 我想测试 id date1 是否小于今天的日期 并且 date2 小于请求参数中的某个其他日期 我不知道如何在空手道模式验证中执行此操作
  • 空手道:JsonPath 通配符不起作用或部分不起作用

    JSON 文件jsonExample store book category fiction author Evelyn Waugh title Sword of Honour something 12 99 bicycle color r
  • 报告中空手道测试套件的运行时间

    我正在使用空手道 9 0 0 并并行运行功能文件并生成 使用空手道并行运行代码的黄瓜报告 问题是 在功能概述的报告中 其显示的总执行时间为 功能 1 执行时间 功能 2 执行时间 功能 3 执行时间 总执行时间 但如果我在超过 1 个线程中
  • 空手道——并行执行失败[重复]

    这个问题在这里已经有答案了 我观察到 当我使用 Runner parallel getClass 1 在 Maven 构建中运行测试 功能文件 时它工作正常 但是当我增加像 Runner parallel getClass 5 这样的线程数
  • If then else 实现在空手道 DSL 中选择 baseURL

    我对空手道有一点棘手的要求 我的 karate config 中有一组 baseURL 它们是根据实现选择的 这是它的片段 if env qa config apiKey apiKey config tsp api https api qa
  • 如何通过黄瓜空手道项目进行调试

    我继承了一个Java Maven Cucumber项目 我对黄瓜相当陌生 在其中一个文件夹中我有一堂这样的课程 import com intuit karate junit4 Karate import org junit runner R
  • 在空手道中对包含重复元素的表执行通配符操作? [复制]

    这个问题在这里已经有答案了 我遇到了这样一种情况 需要在断言用户输入后单击图标 如果有一些唯一标识符 事情就非常简单 例如使用 rightOf UniqueIdentifier find i click 达到了目的 也可以很好地工作 scr
  • 无法在 Eclipse 中对空手道模板项目运行 mvn 测试

    我克隆了空手道模板 即https github com karatelabs karate template https github com karatelabs karate template我能够在 Eclipse IDE 上运行测试
  • 我无法理解空手道中的动态数据表场景[重复]

    这个问题在这里已经有答案了 任何人都知道如何使用 csv 文件创建动态数据表 我正在尝试使用文档中定义的代码 但它对我不起作用 The read函数接受csv文件并从 csv 创建一个 json 对象数组 始终需要标题行 并且标题用于创建对
  • 使用Karate REST API工具上传文件

    我正在尝试使用空手道在特定的松弛通道上上传图像 但没有运气 我尝试了多次不同的步骤 但仍然有 200 响应 并且图像未显示在通道中 尝试发布文字内容并成功在频道上找到文字 以下是我根据空手道文档尝试过的两个 post Feature Pos
  • 空手道 - 使用 Javascript 从 元素获取 URL

    使用空手道 我需要从标签 href 中提取 url 我直接在浏览器中使用 Javascript 尝试过 document querySelector a rel noopener href 它在浏览器中工作正常 我收到完整的 url 地址
  • 空手道 API 测试 - 转义“?”在功能文件的 url 中

    我正在使用pathKarate API 框架中的关键字用于连接字符串以形成 url 但是 我无法通过 这是我正在做的事情 Background url https api cloud abcde com animal Scenario Ve
  • 匹配不存在的 json 路径的每个剂量失败

    我有 json 对象作为响应 如果我尝试使用无效路径来提取值并断言它与每个匹配 它总是会通过 match each karate jsonPath response non existing path text1 我在这里做错了什么吗 请注
  • 能够将空手道与 selenium webdriver 一起使用

    一周前我开始使用空手道 这是我的第一个问题 我曾经使用 Spock 和 groovy 放心和 Cucumber 编写 Web 服务测试 当我接触到空手道时 我觉得它真的很有趣 感谢您付出的巨大努力 我发现 Karate 真的很强大并且满足了
  • 我无法获取 JSON 对象的内部值

    我无法获取此 json 对象的内部嵌套键的值 它从我们的 API 调用获取响应 我只是复制空手道的响应 code 200 result distinct false operatetime 2019 05 17 17 01 01 perso
  • 即使只有一个,是否也可以始终以数组形式获取 XML 节点?

    我正在使用空手道测试 SOAP Web 服务 其中一种方法是 根据请求 响应可以返回一个或多个巧合 将 XML 响应转换为 JSON 时 如果只有一个结果 则将其解释为对象 但如果有多个结果 则将其解释为数组 有什么方法可以使给定路径始终以
  • 如何使用空手道工具比较 2 个 JSON 对象

    URL 1 gt post 请求 gt JSON 响应 1 URL 2 gt post 请求 gt JSON 响应 2 如何比较响应 1 和响应 2 响应 2 将具有额外的属性 因此不能直接使用 match 命令 响应 1 姓名 你好 国家

随机推荐

  • 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