空令牌返回

时间:2017-10-13 05:42:33

标签: java automated-tests rest-assured web-api-testing

我正在测试API端点。问题是当我检查Swagger时,它返回一个有效的令牌,但在我的测试中它返回NULL。你能指出我做错了什么吗?

 public static void createOrganization() {
    Map<String, String> org = new HashMap();
    org.put("directorName", "name");
    org.put("email", "email@gmail.com");
    org.put("website", "www.site.com");
    org.put("phoneNumber", "000111");

    String registrationToken = given().
            contentType("application/json").
            body(org).
            when().
            post("/v3/organizations").
            then().
            extract().path("registrationToken");

    System.out.println("Token: "+ registrationToken);

输出:令牌:null

更新: 也许我错误地使用了extract(),也许以后使用生成的值会有不同的解决方案。因为对于registerDevice(),我也得到了NULL。

public static void registerDevice(){
    String clientDeviceId =
    given().
            param("phoneNumber", "000111").
            param("model", "samsung").
            param("platform", "0").
            param("push_token",SenimEnvironmentVars.testPushToken).
            param("uuid", SenimEnvironmentVars.testUUID).
            param("version", "7.1").
            when().
            post("/v3/user-devices").
            then().
            contentType("application/json").
            extract().path("clientDeviceId");

    System.out.println("Device ID: "+ clientDeviceId); //also prints NULL
}

是否有其他方法可以生成令牌,设备ID等,并在以后使用它们?

1 个答案:

答案 0 :(得分:0)

正如documentation所说

  

您可以从响应中提取值或返回响应   在您使用完成后验证响应后,实例本身   提取方法

因此,请尝试在then之后编写一些验证方法,例如contentType(JSON).