【问题标题】:Updating excel with values from rest assured json response using apache-poi使用 apache-poi 使​​用来自放心 json 响应的值更新 excel
【发布时间】:2019-07-28 17:23:43
【问题描述】:

我是 Rest Assured 的新手并寻求帮助。我已经编写了代码来从 excel 表中读取值,并将它们作为路径参数传递给我的 Rest Assured 测试。这按预期工作。但是,在我从我发出的 post 请求中获得 json 响应后,我想用响应中的值更新同一个 excel。

Excel 有名为火车号、旅程日期和各种舱位代码的列,以及其他列,如头等舱代码、商务舱代码、标准舱位代码,应该显示它们的可用性等等:

最初:

ServiceName  | Date     | A0 | A1 | A2 | ...... 45 columns

9008         |2019-07-28| 0  |  0 |  0 |....... 45 columns

测试后:

ServiceName  | Date     | A0 | A1 | A2 | ...... 45 columns

9008         |2019-07-28| 45 | 23 | 64 |....... 45 columns

我已按照 apache-poi 文档从 excel 中读取值,并提供了读取行、列和获取单元格值的支持方法。但是找不到任何建议如何使用 Json 响应中的值更新相同的 excel。

这些是我为从 excel 读取值而提出的测试和数据提供者方法

@DataProvider(name="logicalAvProvider")
String [][] getLogicalAv() throws IOException
{
    String path = "C:\\Misc\\LogAv.xlsx";
    int rownum = XLUtils.getRowCount(path, "LogAv");
    int colcount=XLUtils.getCellCount(path, "LogAv",rownum );

    String LogAvData[][] = new String[rownum-1][colcount];
    for (int i=1; i <rownum; i++ ) {
        for (int j=0; j<colcount; j++) {
            LogAvData[i-1][j] = XLUtils.getCellData(path, "LogAv", i, j);
            //System.out.println("Data is " +LogAvData[i-1][j]);
        }
    }
    return(LogAvData);
}


@Test(dataProvider="logicalAvProvider")
public void LogicalAvailablity(String ServiceName, String Date) throws IOException {

    Response res=
    given()
    //.log().all()
    .spec(reqSpec)

    .pathParams("service_name", ServiceName, "travel_date", Date)

    .when()
    .get(EndPoints.LOGICAL_AVAILABILTY)
    .then()
    .spec(resSpec)
    .extract().response();
    //.log().body();

}

这是我们在发布请求后看到的那种响应。我需要在 excel 的各个列下更新可用的数字。

[
{
    "od_pair": "7015400:8727100",
    "buckets": [
        {
            "bucket": "C00",
            "original": 2,
            "available": 2
        },
        {
            "bucket": "A01",
            "original": 76,
            "available": 0
        },
        {
            "bucket": "B01",
            "original": 672,
            "available": 477
        },
        {
            "bucket": "B03",
            "original": 578,
            "available": 383
        }
]
}
]

关于使用值更新 excel 工作表的方法的建议。我不指望任何人给我我的问题的确切解决方案,但任何关于该方法的建议或我可以参考的任何参考都将非常感谢。

【问题讨论】:

    标签: apache-poi rest-assured rest-assured-jsonpath


    【解决方案1】:

    从响应中提取所需数据,然后将其写入 Excel 工作表。 使用 restAssured/JsonPath 您可以从 API 响应中提取数据。 使用 apachePOI 您应该能够写入 Excel,有关详细信息,请参阅以下链接: https://www.codejava.net/coding/how-to-write-excel-files-in-java-using-apache-poi

    如果您遇到任何问题,请告诉我们

    【讨论】:

      猜你喜欢
      • 2015-11-23
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 2017-12-13
      • 2019-02-14
      • 1970-01-01
      相关资源
      最近更新 更多