RestAssured接口自动化从入门到框架搭建-9-RestAssured基本功能-6-ContentType校验

这篇介绍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组件。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值