簡體   English   中英

如何從“響應標頭”中提取值並使用“確保放心”進行斷言?

[英]How to extract values from Response Headers and make assertations using Rest Assured?

我想從響應標題中提取值並將其存儲為字符串,並最終使用某些值進行斷言。 我要從以下響應標題中提取* Set-Cookie:id = xxxxxx-xxxxxxx-xxxxxx; 並存儲它。 我正在使用“放心”。 謝謝!

響應標頭*緩存控制:無需緩存,無需存儲,必須重新驗證*連接:保持活動狀態*內容長度:108 *內容類型:image / png *日期:2017年3月22日星期三13:19: 51 GMT *到期時間:0 *語法:no-cache *服務器:nginx / 1.4.6(Ubuntu)* Set-Cookie:AWSELB = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXX.XXX = XXX; XXX。 ; VERSION = 1 * Set-Cookie:id = xxxxxx-xxxxxxx-xxxxxx; 版本= 1; 路徑= /; 域= .xxxx.xxxxx.com; Max-Age = 157680000 * Set-Cookie:Session = xxxx-xxxxxx-xxxxxx-xxxxx; 版本= 1; 路徑= /; 域= .xxxxx.xxxxxx.com; Max-Age = 3600 * X-Powered-By:Xxxxxxxx / 1 * X-Robots-Tag:noindex,nofollow

從文檔略有改編: https : //github.com/rest-assured/rest-assured/wiki/Usage#headers-cookies-status-etc

餅干

要獲取Cookie的所有值,您需要首先從Response對象中獲取Cookies對象。 從Cookies實例中,您可以使用Cookies.getValues()方法獲取所有值,該方法返回具有所有cookie值的列表。

簡單值如String:

import io.restassured.http.Cookie;
import io.restassured.http.Cookies;
import io.restassured.response.Response;

Map<String, String> allCookies = get("https://www.stackoverflow.com").getCookies();

List<String> myCookieValues = allCookies.getValues("myCookieName");

要從cookie獲取所有字段,您需要詳細的cookie:

Cookies allDetailedCookies = get("https://www.stackoverflow.com").getDetailedCookies();

Cookie myCookie = allDetailedCookies.get("myCookieName");
myCookie.getValue();
myCookie.getDomain();
myCookie.getExpiryDate();
myCookie.getMaxAge();
...

如果是多值Cookie:

List<Cookie> myCookies = allDetailedCookies.getList("myCookieNAme");

您可以使用hamcrest matchers對cookie進行斷言:

import static io.restassured.RestAssured.when;
import static org.hamcrest.Matchers.hasValue;

when()
    .get("https://www.stackoverflow.com").
then()
    .cookie("myCookieName", hasValue("value"));

Doc建議從進口:

io.restassured.RestAssured.*
io.restassured.matcher.RestAssuredMatchers.*
org.hamcrest.Matchers.*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM