先决条件:使用Java可以确保最稳定的api测试
Step1。启动URL并获取登录票-下面的代码段获取登录票
RestAssured.baseURI = "https://ve4al10p:453";
RestAssured.useRelaxedHTTPSValidation();
Response res =
given().
header("Content-Type","application/json").
when().
post("/i/login?action=lt").
then().
assertThat().statusCode(200).
extract().response();
res.prettyPrint();
输出:通知登录票
lt":"LT-12370-j4znjFQkGMXMjlT3uKJ"
步骤2.使用登录票证并使用用户名和密码执行登录。我提取了登录票证并传递到下一个请求(续片段)。
CookieFilter cookieFilter = new CookieFilter();
Response res1 = given().
filter(cookieFilter).
header("Content-Type","application/json").
queryParam("lt",loginticket).
queryParam("username","user1").
queryParam("password","pass1").
when().
post("/i/login?service=https://ve4al10p:443/spa").
then().
assertThat().statusCode(200).
extract().response();
res1.prettyPrint();
输出:请注意,它再次创建了一个新的登录票证,这意味着一个新的会话并无法给出预期的输出。
**"lt":"LT-12369-u6osMkesdg6RQu9JPoDARL4D"**
注意:我也注意到上述请求的会话,并且两者都不同。
预期输出:我要使用相同的登录票证并保持相同的会话。
您可以从登录名获取SessionID / cookie,并将其作为SessionID传递给下一个请求作为标头,以维护单个会话。
例如:
String JsessionID = given().header(h1).body(payload).when().post(basepath).thenReturn().cookie("JSESSIONID");
given().headers(JsessionID).body(body).when().post();