本文共 2556 字,大约阅读时间需要 8 分钟。
这篇来学习下Rest Assured中如何获取响应头和cookies,前面某一篇,我们介绍过如何拿到 响应内容,再做其他操作这条用例,本篇就是在拿到响应内容基础上,再获取headers 和cookies。
1.获取Headers
/** * 得到响应头 */ @Test public void testGetResponseHeaders() { Response res = get("http://jsonplaceholder.typicode.com/photos"); // 得到一个响应header中字段 String headerCFRAY = res.getHeader("CF-RAY"); System.out.println("CF-RAY: " + headerCFRAY); // 得到全部的headers Headers headers = res.getHeaders(); for (Header h : headers) { System.out.println(h.getName() + ":" + h.getValue()); } }
运行结果
[RemoteTestNG] detected TestNG version 6.14.3CF-RAY: 4fb6dafa2a0532e1-HKGDate:Wed, 24 Jul 2019 15:16:27 GMTContent-Type:application/json; charset=utf-8Transfer-Encoding:chunkedConnection:keep-aliveSet-Cookie:__cfduid=dc375e91c76ca96482f7d7e07e691fbc01563981387; expires=Thu, 23-Jul-20 15:16:27 GMT; path=/; domain=.typicode.com; HttpOnlyX-Powered-By:ExpressVary:Origin, Accept-EncodingAccess-Control-Allow-Credentials:trueCache-Control:public, max-age=14400Pragma:no-cacheExpires:Wed, 24 Jul 2019 19:16:27 GMTX-Content-Type-Options:nosniffEtag:W/"105970-HCYFejK2YCxztz8++2rHnutkPOQ"Content-Encoding:gzipVia:1.1 vegurCF-Cache-Status:HITAge:445Server:cloudflareCF-RAY:4fb6dafa2a0532e1-HKGPASSED: testGetResponseHeaders
这个很简单,获取某一个需要Key来获取value,冒号左边就是key,右边就是value,获取多个就是要foreach 集合遍历就行。
2.获取cookies
再来一个cookies的获取的例子。
我们手动在浏览器打开
浏览器自带F12工具去看看请求头中的cookies
上面这个只有一个cookies,我们来看看代码如何拿到这个cookies.
/** * 得到cookies */ @Test public void getCookies() { Response res = get("http://jsonplaceholder.typicode.com/photos"); Mapcookies = res.getCookies(); //遍历集合,拿到每一个cookies for (Map.Entry entry : cookies.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } }
运行结果
[RemoteTestNG] detected TestNG version 6.14.3__cfduid:d5e86b93acfb5c8e74246613aae27d9231564154045PASSED: getCookies
这个每次请求的cookies都不一样,和上面红圈的格式是一样的。
3.得到cookies的详细信息
我们还可以得到cookies的详细信息,例如过期时间等,前提是要根据cookie的key去拿到这个cookie的详细信息。
/** * 得到cookies详细信息 */ @Test public void getCookiesDetailsInfo() { Response res = get("http://jsonplaceholder.typicode.com/photos"); //得到一个详细cookies对象 Cookie c = res.getDetailedCookie("__cfduid"); System.out.println("判断这个cookies是否有过期时间设定: " + c.hasExpiryDate()); System.out.println("打印cookies的过期时间: " + c.getExpiryDate()); System.out.println("判断是否值: " + c.hasValue()); }
得到
[RemoteTestNG] detected TestNG version 6.14.3判断这个cookies是否有过期时间设定: true打印cookies的过期时间: Sat Jul 25 23:21:38 CST 2020判断是否值: truePASSED: getCookiesDetailsInfo
关于cookies的详细信息,还有一些方法自己可以在上面代码c. 后面弹出的方法补全,看看这些方法的作用。上面我只是介绍了三种方法。
转载地址:http://ejows.baihongyu.com/