【问题标题】:REST Assured and multiple postsREST 保证和多个帖子
【发布时间】:2013-07-22 18:38:50
【问题描述】:

我正在尝试使用 REST 保证来测试我的登录/注销功能。是否可以进行 REST 有保证的测试,先发布登录然后发布注销?如果没有,我该如何正确测试它?

【问题讨论】:

  • 我查看了文档。它没有给出任何例子,也没有具体说明什么。
  • 您的身份验证是基本/摘要还是表单?

标签: rest rest-assured


【解决方案1】:

只需发送两个 post() 和一个 assert()/expect()

import org.junit.Assert;
import org.junit.Test;

import static org.hamcrest.Matchers.*;
import static com.jayway.restassured.RestAssured.*;

@Test
public void loginAndLogout(){
    final String login = randomLogin();
    // First post to login()
    given()
    .queryParam("login", login)
    .queryParam("password", randomPassword())
    .when().post("/login/");    

    // Second post to logout() with an assert
    expect().statusCode(200)
    .given()
    .when().post("/logout/");   
}

【讨论】:

  • 在每个帖子之间,如果您想验证响应,那么这也是可能的.. 即在post() 之后,您可以拥有then().body("param1", "value1,", "param2", "value2", ...);
【解决方案2】:

你可以试试

expect().statusCode(HttpStatus.SC_OK)
    .given()
    .parameters("user", user, "password", URL)
    .cookie("cookie_name", "cookie_value")
    .post("/someURL");

还有一个放心的身份验证调用。

查看documentationexamples

【讨论】:

    【解决方案3】:

    您的登录 api 调用是否会产生某种身份验证令牌,以便在后续请求中重用? 如果是这样,我将这些视为单独的放心调用,以对其进行全面测试。

    (登录焦点)

    1. 向 /login api 发出 RestAssured 调用。保存返回的身份验证令牌。
    2. 使用保存的令牌,向系统中需要在第一步中进行身份验证的另一个 API 发出 RestAssured 调用。这确认身份验证令牌有效。

    (注销焦点)

    1. 使用保存的令牌向 /logout api 发出 RestAssured 调用。
    2. 重复第 2 步并确认此请求现在失败,因为登录令牌在第 3 步之后不再有效。

    【讨论】:

      【解决方案4】:

      你也试试这个:

      使用 xyzjson 名称创建您的 JSON 文件,并将您的后有效负载数据保存在该文件中并使用以下代码。

      Response rep  = given()
                        .headers
                        .(headers)
                        .accept(contentType.json)
                        .body (xyzjson)
                      .when()
                        .post(someURL);
      
      Assert.assertTrue(rep.StatusCode() == HttpStatus.SC_Ok);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-03
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多