博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RestAssured接口自动化从入门到框架搭建-13-响应断言-状态码/Header/ContentType
阅读量:4302 次
发布时间:2019-05-27

本文共 1827 字,大约阅读时间需要 6 分钟。

这篇开始来学习下响应中的校验,断言场景,主要有状态码,响应Header断言,响应content type断言和响应正文内容断言。其中响应正文内容断言是最难也是最复杂,接口的响应数据就在正文。

 

1.状态码断言

/**	 * 状态码断言	 */	@Test	public void testStatusInResponse() {    	    	given().get("http://jsonplaceholder.typicode.com/photos/").then().assertThat().statusCode(200).log().all();    	given().get("http://jsonplaceholder.typicode.com/photos/").then().assertThat().statusLine("HTTP/1.1 200 OK");    	given().get("http://jsonplaceholder.typicode.com/photos/").then().assertThat().statusLine(containsString("OK"));			}

上面第一个用例是状态码断言,是不是200,然后打印响应内容。第二个用例是响应消息中的响应起始行内容行断言,这个在HTTP协议基础系列文章有介绍过。第三个用例是在响应起始行内容行中部分字符串包含断言。

 

2.响应header断言

响应头断言场景

上面红圈可以分别一个一个Header去断言,可以可以多个Headers一起断言。

/**	 * header断言	 */	@Test	public void testResponseHeader() {		given().			get("http://jsonplaceholder.typicode.com/photos").		then().			assertThat().header("X-Powered-By","Express");				given().			get("http://jsonplaceholder.typicode.com/photos").		then().			assertThat().headers("Vary","Origin, Accept-Encoding","Content-Type", containsString("json"));	}

上面两个case,第一个是只断言一个Header,key是X-Powered-By,value是Express。

第二个用例是断言了两个Header,第一个是Vary和它的value是不是Origin, Accept-Encoding,第二个Content-Type中包含字符串json。

 

3.响应Content Type断言

Content Type常见的三种HTML XML和JSON,这个我们在基本功能文章中介绍过,这里复习一下。

/**	 * Content-type断言	 */	@Test	public void testContentTypeInResponse() {		given().			get("http://jsonplaceholder.typicode.com/photos").		then().			assertThat().contentType(ContentType.JSON);	}

 

4.正文文本断言

有时候我们需要对正文文本断言,可以是全部的text,也可以是其中一部分text,下面来举例一个全部text,有一个这个响应内容是xml,text内容不多,我们就直接全部text去断言。

/**	 * 响应正文 文本断言	 */	@Test	public void testBodyTextInResponse() {		String responseString = get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/").asString();		given().get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/").			then().assertThat().body(equalTo(responseString));	}

 

转载地址:http://fnows.baihongyu.com/

你可能感兴趣的文章
MFC创建及读写ini文件操作(转)
查看>>
MFC 获取当前工作路径和可执行文件路径
查看>>
MFC对话框中处理Enter或Esc按键事件方法
查看>>
MFC获取键盘光标和鼠标光标所在控件的ID
查看>>
MFC中动态获取/设置按钮的文字
查看>>
MFC中CString和int的转换
查看>>
退出MFC应用程序的方法集
查看>>
C/C++中如何获取数组的长度?
查看>>
VS2010 MFC中控件、对话框等背景颜色动态修改的方法
查看>>
MFC启动和关闭线程
查看>>
MFC绘制动态曲线,用双缓冲绘图技术防闪烁
查看>>
MFC SetWindowPos
查看>>
C++虚函数表,虚表指针,内存分布
查看>>
c++中.dll与.lib文件的生成与使用的详解
查看>>
CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
查看>>
在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
查看>>
DeleteDC() 与 ReleaseDC() 的区别 [转]
查看>>
WinHand.cpp Line 199 错误 WinHand.cpp Line 218 错误
查看>>
GDI对象和CDC的使用方法(防止资源泄漏)
查看>>
MFC中的DC,CDC和HDC
查看>>