博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RestAssured接口自动化从入门到框架搭建-9-RestAssured基本功能-6-ContentType校验
阅读量:4302 次
发布时间:2019-05-27

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

这篇介绍Rest Assured中Content-Type的校验,我们常见的响应内容格式,一般有xml,json,html等。这篇主要介绍如何判断一个响应内容的格式是不是JSON, 是不是xml, 是不是html。 本来想再说具体的xml格式中schema语法校验,和JSON中schema的语法校验,没有找到合适的接口。

 

1.校验响应内容格式是html

这里拿百度首页举例。

/**	 * 验证响应文件类型是html	 */	@Test	public void testResponseContentType2() {		given().			get("https://www.baidu.com").		then().			statusCode(200).			contentType(ContentType.HTML);	}

 

2.校验响应内容格式是json

/**	 * 验证响应文件类型是 json 	 */	@Test	public void testResponseContentType() {		given().			get("http://jsonplaceholder.typicode.com/photos/1").		then().			statusCode(200).			contentType(ContentType.JSON);	}

 

3.校验响应内容格式是xml

/**	 * 验证响应文件类型是xml	 */	@Test	public void testResponseContentType3() {		given().			get("http://www.thomas-bayer.com/sqlrest/INVOICE/").		then().			statusCode(200).			contentType(ContentType.XML);	}

 

4.JSON的schema约束校验

因为响应的JSON内容,每个公司可能有自己格式,一般来说,都是采用json schema约束。也就是说返回的json的内容是一个标准的模板,这个模板里面有一些要求或者约束。这个不好举例,了解一下就好。

在src-test-resource包下,放一个test-json-schema.json的文件,内容如下。

{   "$schema": "http://json-schema.org/draft-04/schema#",   "RestResponse" : {	"countryIso2" : "integer",        "stateAbbr" : "string",        "postal" : "string",    	"continent" : "string",	"state" : "blank fields are acceptable",	"logitude" : "",        "latitude" : "",        "ds" : "string",	"ip" : "string",	"city" : "string",	"country" : "string"    }}

上面这些字段,每家公司都不一样,都是自己定制的。下面的代码是用来校验响应的json格式是不是准寻这个内部指定的json schema约束。

使用这个json schema校验之前,需要导入下面这个包。

import static io.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
/**	 * json schema约束	 */	@Test	public void testJsonSchema() {		given().			get("xxxxxx").		then().			assertThat().body(matchesJsonSchemaInClasspath("test-json-schema.json"));	}

这个没有在线的例子,知道json schema校验有这么一个方法就行,这个方法来源pom.xml中的json-schema-validator组件。

 

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

你可能感兴趣的文章
MFC的Serialize机制及其使用(转)
查看>>
在MFC里面实现线程的实例
查看>>
MFC之AfxbeginThread 线程 创建、挂起、释放、结束、退出
查看>>
mfc 创建线程函数AfxBeginThread,线程中访问mfc控件
查看>>
C++中 *&(指针引用)与*(指针)的区别
查看>>
MFC 线程的退出方法
查看>>
如何修改MFC的图标
查看>>
Qt下TCP编程
查看>>
客户端与服务端的TCP通信实现(Qt)
查看>>
QT之TCP通信
查看>>
QT 之 TCP/IP 服务器和客户端(一)
查看>>
qt中的tcp
查看>>
基于MFC的socket编程(异步非阻塞通信)
查看>>
异步SOCKET与同步SOCKET
查看>>
MFC匿名管道原理详解、函数总结、调用实例(用MFC的匿名管道读取CMD输出内容)(C++语言)
查看>>
C#与USB设备通信
查看>>
CyUSB.dll的调用经验介绍
查看>>
MFC菜单栏(CMenu)控件
查看>>
Android 中的webview组件显示vue空白的解决方案
查看>>
快速制作数据库设计文档的表格
查看>>