"Invalid number of path parameters. Expected 0, was 3" error while passing the url parameters in rest api (放心)

"Invalid number of path parameters. Expected 0, was 3" error while passing the url parameters in rest api (rest-assured)

正在努力测试剩下的api放心。获取错误

Invalid number of path parameters. Expected 0, was 3.

public class GetSociailDetails {

    @Test
    public void generateToken() {

        Map<String,String> userDetails = new HashMap<>();

        userDetails.put("msISDN", "1217071016");
        userDetails.put("messageSource", "TWITTER");
        userDetails.put("socialId", "168988132");

        given()
        .contentType("application/json")

        .pathParam("access_token", "LLRPqxvU1uoT8YSl8")

        .pathParam("pageNo", "1")

        .pathParam("order", "desc")

        .body(userDetails)

        .post("http://name.com/rest/crm/getdetails")

        .then()

        .statusCode(200);

    }

}

是否有不同的方法来传递 url 其余 api 中的参数,这是 POST 方法。

而不是

.pathParam("pageNo", "1")

改为

.queryParam("pageNo", "1")

这有效。

使用路径参数时,您需要将 'mapping' 添加到您希望参数出现的 URL 中。例如,在您的示例中,如果您将 post 请求更改为以下内容,它将起作用:

.post("http://name.com/rest/crm/getdetails/{access_token}/{pageNo}/{order}")

根据您的示例,这将导致以下 URL:

http://name.com/rest/crm/getdetails/LLRPqxvU1uoT8YSl8/1/desc

如何在 Rest Assured 中使用路径参数:

  1. 使用 pathParam 方法将路径参数添加到基本 URI 的末尾

例如

  1. 基本 URI:https://www.example.com/
  2. 路径参数:资源/{resourceID}

完整代码:

RestAssured.given().baseUri("https://www.example.com/").pathParam("resourceID","Resource123").get(/resource/{resourceID});

完整 URI:https://www.example.com/resource/Resource123