【问题标题】:How to pass Query String Parameters in GET url using Rest Assured?如何使用 Rest Assured 在 GET url 中传递查询字符串参数?
【发布时间】:2017-04-26 09:42:49
【问题描述】:

如何使用 Rest Assured 在 GET url 中传递查询字符串参数?

网址为:http://example.com/building

我的查询字符串是:

globalDates:{"startMs":1473672973818,"endMs":1481448973817,"period":90}
limitTo:6
loadTvData:true
startFrom:0
userId:5834fb36981baacb6a876427

【问题讨论】:

    标签: api automated-tests restful-architecture rest-assured web-api-testing


    【解决方案1】:
    QueryParam can be passed as:
    
    String endpoint = "http://example.com/building"; 
    
    var response = given()
    .queryParam("globalDates", "{\"startMs\":1473672973818,\"endMs\":1481448973817,\"period\":90}")
    .queryParam("startFrom", "0").queryParam("limitTo", "6").queryParam("loadTvData", true)
    .queryParam("startFrom", "0").queryParam("userId", "5834fb36981baacb6a876427")
    .when().get(endpoint).then();
    

    【讨论】:

      【解决方案2】:

      对于我们的 api,类型如下:

      https://my.api.com/meeting?page=0&size=1

      我们有:

      Response response = requestSpecification.queryParam("page", 0).queryParam("size", 1).get(baseEndpoint);
      

      【讨论】:

        【解决方案3】:

        您也可以将这个查询参数放在 Map 中,如下所示,

        HashMap<String, String> params = new HashMap<String, String>() {{
        
        put("globalDates", "{\"startMs\":1473672973818,\"endMs\":1481448973817,\"period\":90}");
        
        put("limitTo","6" );
        
        ,...
        
        }}
        

        然后像下面这样发布,

         resp = RestAssured.given()
                            .headers(headers)
                            .queryParameters(params)
                            .post(apiURL).andReturn();
        

        【讨论】:

        • 谢谢你,正是我想要的! :)
        【解决方案4】:

        您可以像这样使用 Rest Assured 在 GET URL 中传递查询字符串参数:

        when()
          .parameter("globalDates","startMs","1474260058054","endMs","1482036058051","period","90")                              
          .parameters("limitTo","6")                                  
          .parameters("loadTvData","true")                                
          .parameters("startFrom","0")
          .parameters("userId","5834fb36981baacb6a876427");
        

        【讨论】:

        • parameter()parameters() 方法目前已被弃用。
        【解决方案5】:

        您可以将它们作为 queryParam 传递..

        given()
        .queryParam("globalDates", "{\"startMs\":1473672973818,\"endMs\":1481448973817,\"period\":90}")
        .queryParam("startFrom", "0").queryParam("limitTo", "6").queryParam("loadTvData", true)
        .queryParam("startFrom", "0").queryParam("userId", "5834fb36981baacb6a876427")
        .when().get("http://example.com/building"). ...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多