【发布时间】:2013-07-22 18:38:50
【问题描述】:
我正在尝试使用 REST 保证来测试我的登录/注销功能。是否可以进行 REST 有保证的测试,先发布登录然后发布注销?如果没有,我该如何正确测试它?
【问题讨论】:
-
我查看了文档。它没有给出任何例子,也没有具体说明什么。
-
您的身份验证是基本/摘要还是表单?
标签: rest rest-assured
我正在尝试使用 REST 保证来测试我的登录/注销功能。是否可以进行 REST 有保证的测试,先发布登录然后发布注销?如果没有,我该如何正确测试它?
【问题讨论】:
标签: rest rest-assured
只需发送两个 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", ...);
你可以试试
expect().statusCode(HttpStatus.SC_OK)
.given()
.parameters("user", user, "password", URL)
.cookie("cookie_name", "cookie_value")
.post("/someURL");
还有一个放心的身份验证调用。
【讨论】:
您的登录 api 调用是否会产生某种身份验证令牌,以便在后续请求中重用? 如果是这样,我将这些视为单独的放心调用,以对其进行全面测试。
(登录焦点)
(注销焦点)
【讨论】:
你也试试这个:
使用 xyzjson 名称创建您的 JSON 文件,并将您的后有效负载数据保存在该文件中并使用以下代码。
Response rep = given()
.headers
.(headers)
.accept(contentType.json)
.body (xyzjson)
.when()
.post(someURL);
Assert.assertTrue(rep.StatusCode() == HttpStatus.SC_Ok);
【讨论】: