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

Download 如何在空手道中从api端点获取下载的xlsx文件?,download,xlsx,karate,Download,Xlsx,Karate,我有一个下载xlsx文件的端点。在测试中,我需要检查文件的内容(不是将文件与另一个文件进行比较,而是读取内容并进行检查)。我使用空手道框架进行测试,并尝试使用ApachePOI处理excel工作表。然而,当调用下载端点时,我从空手道得到的响应是字符串。要使用POI创建excel文件,我需要输入流或实际文件的路径。我已经尝试过转换,但不起作用 我想我在这里错过了一些联系,或者转换不好,我对空手道和整个事情都是新手。 谢谢你的帮助,谢谢 Given url baseUrl Given pa

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

我想我在这里错过了一些联系,或者转换不好,我对空手道和整个事情都是新手。 谢谢你的帮助,谢谢

 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评估失败:FileChecker.createExcelFile(响应),java.io.IOException:读取zip条目源代码失败


在Postman中测试同一端点时,我得到了一个有效的excelsheet。

在空手道0.9.X以后的版本中,您有一个变量,它将是原始字节,这可能是您需要的

* def value= FileChecker.createExcelFile(responseBytes)
您可以将方法签名更改为:

public static String createExcelFile(byte[] excel) {}
您应该能够轻松地将字节数组转换为
InputStream
,并从中获取它


顺便说一句,仅仅说它“在邮递员中有效”是没有帮助的:p

从空手道测试中下载zip文件作为二进制比特数组

场景:验证并从部署中获取ADCI Uri 给定url basicURL+DeployUri+ArtifactUri 和标题
{authorization:'#(authToken)',accept:'application/json',tenant:'#(tenantuid)',内容类型:'application/zip'}
当方法得到 然后状态200
def responsebytes=responsebytes

有效,谢谢!我提到邮递员只是为了避免像文件不是有效的xlsx这样的问题