如何从空手道中的 api 端点获取下载的 xlsx 文件?

2023-12-26

我有一个下载 xlsx 文件的端点。在我的测试中,我需要检查文件的内容(不是将文件与另一个文件进行比较,而是读取内容并检查)。我正在使用空手道框架进行测试,并尝试使用 apache POI 来处理 Excel 工作表。但是,调用下载端点时我从空手道得到的响应是一个字符串。为了使用 POI 创建 Excel 文件,我需要一个 InputStream 或实际文件的路径。我已经尝试过转换,但不起作用。

我想我在这里缺少一些联系,或者转换可能很糟糕,我对空手道和整个事情都是新手。 我感谢任何帮助,谢谢!

 Given url baseUrl
    Given path downloadURI
     When method GET
     Then status 200
    And match header Content-disposition contains 'attachment'
    And match header Content-disposition contains 'example.xlsx'
    And match header Content-Type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

        * def value= FileChecker.createExcelFile(response)
        * print value

以及Java代码:

public static String createExcelFile(String excel) throws IOException, InvalidFormatException {
        InputStream stream = IOUtils.toInputStream(excel, Charset.forName("UTF-8"));
        Workbook workbook = WorkbookFactory.create(stream);
        return ("Workbook has " + workbook.getNumberOfSheets() + " Sheets : ");
    }

运行场景时,我收到以下错误:javascript evaluation failed: FileChecker.createExcelFile(response), java.io.IOException: Failed to read zip entry source

在 Postman 中测试相同的端点时,我得到了一个有效的 Excel 工作表。


在空手道 0.9.X 中,您有responseBytes https://github.com/intuit/karate#responsebytes变量将是原始字节,这可能是您所需要的。

* def value = FileChecker.createExcelFile(responseBytes)

您可以将方法签名更改为:

public static String createExcelFile(byte[] excel) {}

您应该能够轻松地将字节数组转换为InputStream并从那里拿走它。

附:只是说它“在 Postman 中工作”是没有帮助的:P

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

如何从空手道中的 api 端点获取下载的 xlsx 文件? 的相关文章

  • 使用 OkHttp 下载损坏的文件

    我编写的下载文件的方法总是会产生损坏的文件 public static String okDownloadToFileSync final String link final String fileName final boolean te
  • Magento补丁安装失败

    从以下位置下载并运行 Magento PHP 5 4 支持补丁 Magento CE v1 7 0 0 1 7 0 2 时http www magentocommerce com download http www magentocomme
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • 下载 csv 文件 node.js

    我正在使用 node js 构建一个应用程序并尝试将数据下载为 csv 文件 我正在使用 json2csv https www npmjs com package json2csv https www npmjs com package j
  • 下载Xcode? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚升级到 OS X Mavericks 我很高兴能够使用所有新的 Mavericks 技术 我只有
  • 如何使用maven生成下载站点

    我是 Maven 新手 正在尝试完成一个简单的任务 构建jar包和网站 完成 通过 scp 将它们部署到远程服务器 完成 该站点应包含下载页面 其中包含指向已部署的 jar 文件的链接 缺失 我不想使用 archive 或类似的工具 我只想
  • 单击锚点,在同一窗口中下载文档

    我想提示用户在同一窗口中保存数据 可以是任何类似 图像 pdf excel 工作表等 我不想用HTML5下载选项 因为这并非对所有浏览器都有效 例如 我想提示用户下载谷歌徽标 如下代码所示 a href https www google c
  • 使用 Java 通过 HTTP 下载未知长度的文件

    我想用java下载一个HTTP查询 但是我下载的文件在下载时有一个未确定的长度 我认为这将是相当标准的 所以我搜索并找到了它的代码片段 http snipplr com view 33805 http snipplr com view 33
  • Solaris 10 有 wget 命令吗

    Solaris 11 有 wget 命令 就像 Linux 一样 Solaris 10 是否有 wget 或类似 wget 的命令 Solaris 10 中的 wget 命令在某种程度上是隐藏的 你可以在这里找到它 usr sfw bin
  • 如何使用 php 通过 https 下载文件

    我需要使用 PHP 下载 xml 文件 我可以在对文件进行curl 调用时通过设置以下选项来读取文件的内容 curl setopt http CURLOPT SSL VERIFYPEER false curl setopt http CUR
  • Selenium:将 Internet Explorer 中的文件下载到指定文件夹,无需直接链接,无需 Windows 窗体,无需 AutoIt 或 Robot

    我经常遇到一个问题 如何在 IE 中下载文件 与 Firefox 的 Chrome 不同 您不能只指定所需的文件夹 所有文件都会下载到该文件夹 您还需要与本机 Windows 表单等进行交互 有多种选项 例如使用 AutoIt 使用键盘命令
  • 需要存储表的属性值以用于空手道中的断言

    我有一个情况 定位器没有文本值 但它的名为 title 的属性有一个我需要断言的文本值 在为其编写自定义定位器时 我只能获取文本值 而不是特定的属性值 例如 title abcdd Example div class table cell
  • 使用多处理和 PySftp 并行下载

    我正在尝试创建一个代码来使用 pysftp 和多处理库下载相同类型的 N 个文件 我做了一个基本的Python训练 得到了一些代码并将它们组合成一个 但我无法让它工作 如果有人帮助我 我将不胜感激 该错误发生在 vFtp close 命令之
  • 使用 R 下载压缩数据文件、提取并导入 .csv

    我正在尝试使用以下方法从网页下载并提取 csv 文件R 这个问题是重复的使用 R 下载压缩数据文件 提取和导入数据 https stackoverflow com questions 3053833 using r to download
  • Poi:从 xlsm 打开 Excel 文件后将其保存为 xlsx

    我正在编写一个java程序 它打开一个用户定义的excel文件 用数据填充它 然后将其保存在用户指定的路径 文件名和扩展名下 即使输入文件是 xlsm 也应该可以声明输出保存为 xlsx 但实际上是不可能的 如果我尝试使用下面的代码 打开文
  • 如何使用 Angular2 或更高版本下载文件

    我有一个 WebApi MVC 应用程序 我正在为其开发一个 angular2 客户端 以替换 MVC 我在理解 Angular 如何保存文件时遇到一些困难 请求没问题 与 MVC 一起工作正常 我们可以记录收到的数据 但我不知道如何保存下
  • 尝试使用javascript下载网站上的所有图像

    我需要一些有关此脚本的帮助 我正在尝试使该脚本下载网页上的所有图像 它可以很好地下载第一个图像 然后当 Google Chrome 尝试下载其余图像时 它会显示 无文件 一些帮助将不胜感激 我通过将其粘贴到 JavaScript 控制台来运
  • 空手道包含且所有键值不匹配错误

    我尝试学习空手道 但遇到了一些问题 我无法自己解决 所以我的功能看起来相当简单 Feature Alerting get the list of all alerts Background url url Scenario Retrieve
  • 使用 Karate Robot DSL 来支持用 Swing 编写的 Windows 桌面应用程序和 Mac OS 支持 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于那些使用空手道机器人在 Windows 中使用 Swing 编写的自动化桌面应用程序的人 我很想知道您的体验如何 即测试运行可靠还

随机推荐

  • Kafka - 代理:消息大小太大

    I get Message size too large当我尝试发送超过 1 Mb 大小的消息时出现异常 当我尝试生成消息时 该错误出现在我的客户端应用程序中 经过一番谷歌搜索后 我发现应该更改设置以增加最大消息大小 嗯 我在 kafka
  • Popover segue 到静态单元 UITableView 导致编译错误

    我目前有一个带有两个视图控制器的应用程序 第一个是具有嵌入式表视图的视图控制器 该表视图具有动态单元格 第二个是带有静态单元格的表视图控制器 如果我通过选择动态表的单元格之一将 Segue 添加到静态表视图控制器 使用 Push 或 Mod
  • 在 Netbeans 中更快地搜索文件

    是否有现有的插件或调整可以加速 Netbeans 中的 转到文件 搜索 与 Eclipse 相比 Netbeans 搜索速度太慢 特别是如果有多个大型项目 I know I can use CTRL O for Go To Type but
  • fopen什么时候会失败?

    在我的 PHP 代码中 我打开一个文件并向其中附加文本 我使用这段代码 ourFileHandle fopen ourFileName a or die can t open file 当加载 PHP 页面时会发生这种情况 现在如果两个人同
  • 如何从程序中删除日志调试语句

    我在用boost log作为我的 C 程序的记录器 在开发过程中我经常这样使用它 例如 define LOG severity BOOST LOG SEV boost logger get severity define LOG ERR L
  • 学习嵌入式编程的最佳平台? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我可以在生产中使用 IOSurface 框架录制屏幕吗

    如果我使用 IOSurface 框架制作我的应用程序的视频 苹果会拒绝我的应用程序吗 是的 如果您链 接 IOSurface Apple 将拒绝您的应用程序 商店中的一些项目正在使用它 但他们可能会在运行时加载它 iOS 应用 Displa
  • Swift 2 将 Json 解析为数组的可选

    我正在从网络服务获取国家 地区列表 收到后我用这段代码来处理它 if let json try NSJSONSerialization JSONObjectWithData data options as NSDictionary trig
  • 在 AWS Step Functions 中,可以使用静态字符串格式化参数值吗?

    在 AWS Step Functions 中 我们可以使用以下语法将之前步骤中的参数用作输入 Parameters Details weight product weight unit grams 举个例子 说product weight
  • Swift 中的 PerformSelector 的替代品?

    The performSelector方法族在 Swift 中不可用 https developer apple com library prerelease ios documentation swift conceptual build
  • SQLSTATE[HY000]:一般错误:Laravel 发生 2053 错误

    首先 我的环境是LAMP M代表MariaDB 整个错误是 SQLSTATE HY000 General error 2053 SQL UPDATE Demos SET Hit ifnull Hit 0 1 WHERE id 27 模型中的
  • 以与 SSISDB 不同的用户身份执行 SSIS 包

    我们要求用户使用代理帐户并引用输入参数来执行 SSIS 包 下面演示了用于调用包执行的语法 DECLARE ExportID INT 1 DECLARE ExecutionID INT EXECUTE AS proxy account EX
  • 如何将我的 MAUI 应用连接到 Firestore 数据库? (通过服务帐户 json 文件)

    创建一个 MAUI 应用程序并尝试将其连接到 Firestore 我正在跟进这里的建议 https cloud google com dotnet docs reference Google Cloud Firestore latest下载
  • Spring集成测试启动缓慢。原因?无法禁用 RabbitMQ

    我在启动集成测试时遇到性能问题 我正在尝试模拟系统的消息传递 为此 我基本上使用 MockBean在我的网关上并使用 EnableAutoConfiguration exclude RabbitAutoConfiguration class
  • Discord.py 按钮响应交互在一段时间后失败

    我有一个非常基本的脚本 它会弹出一条消息 其中包含带有命令 place 的按钮 单击此按钮后 机器人会向单击它的用户回复 嗨 如果按钮没有交互超过大约 3 分钟 它就会开始返回 交互失败 之后按钮就变得毫无用处 我假设有某种内部超时 我在文
  • 数组索引越界 - Java

    我已经开始编写我的第一个 Java 程序 这是一个简单的计算器 但是我收到一条错误消息 声称我的数组超出范围 我尝试对其进行调试 以了解出现这种情况的位置和原因 并按照纸上的代码进行操作 这两者都显示了我期望和希望的结果 因此 我看不出问题
  • 通过定义者角色权限在PL/SQL过程中执行动态DDL

    我想在管理员用户拥有的过程中执行一些动态 DDL 我想使用具有定义者权限的技术操作用户执行此过程 操作用户没有创建表角色 问题是 创建表 权限是通过使用角色授予管理员用户的 这不允许我执行 DDL 因为角色似乎不计入命名的 pl sql 块
  • mod_rewrite:如何重定向 HTTP DELETE 和 PUT

    我尝试使用 mod rewrite 在 php 中编写一些 REST API 我的问题是 如何处理 HTTP DELETE 和 PUT 例如 网址为 书 1234 其中 1234 是一本书的唯一 ID 我想将此 id 1234 重定向 到
  • 使用 Filehelpers 处理 DelimitedRecord 中的 NEWLINE

    我使用优秀的 FileHelpers 库来解析许多不同的文件 其中一个文件的 一些 行看起来像这样 id name comments date 01 edov bla bla bla bla 2012 01 01 02 john bla b
  • 如何从空手道中的 api 端点获取下载的 xlsx 文件?

    我有一个下载 xlsx 文件的端点 在我的测试中 我需要检查文件的内容 不是将文件与另一个文件进行比较 而是读取内容并检查 我正在使用空手道框架进行测试 并尝试使用 apache POI 来处理 Excel 工作表 但是 调用下载端点时我从