目录:
- JSON请求
- XML请求
JSON简介:
- 是JavaScript Object Notation的缩写
- 是一种轻量级的数据交换格式
- 是理想的接口数据交换语言
JSON请求:
- 构造JSON请求体
- JSON字符串
- HashMap对象+Jackson库
构造JSON请求体:
package com.ceshiren.jsonpath;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
public class jsonStrTest {
@Test
void testJsonStr(){
//定义请求数据:jsonstr
String jsonStr = "{\"hello\":\"hogwarts\"}";
given()
//指定内容类型
.contentType("application/json")
//传入数据对象
.body(jsonStr)
.log().headers()
.log().body()
.when()
.post("https://httpbin.ceshiren.com/post")
.then()
// .log().all()
//简单的断言
.statusCode(200);
}
}
使用HashMap对象:
package com.ceshiren.jsonpath;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import static io.restassured.RestAssured.given;
public class jsonObjTest {
@Test
void JsonObjTest(){
//定义请求数据体
HashMap<String,String> jsonObj =new HashMap<String,String>();
//填充数据
jsonObj.put("hello", "hogwarts");
given()
//请求体类型
.contentType("application/json")
.body(jsonObj)
.log().headers()
.log().body()
.when()
.post("https://httpbin.ceshiren.com/post")
.then()
.statusCode(200);
}
}
XML简介:
- 是eXtensible Markup Language的缩写
- 是可扩展标记语言,类似HTML
- 是用来传输和存储数据
- 是通过<>标签来描述信息
- 是W3C的推荐标准
XML是一个完整的标记语言,而JSON不是
XML请求:
- 构建XML请求体
- 外部XML文件
- 字符串
外部XML文件:
IOUtils依赖配置:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>${json-path.version}</version>
</dependency>
xml实例:
package com.ceshiren.jsonpath;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import static io.restassured.RestAssured.given;
public class xmlTest {
@Test
void testxmlTest() throws IOException {
//定义请求体数据,XML文件
File file = new File("src/test/resources/add.xml");
//使用文件输入流,读取信息
FileInputStream fis = new FileInputStream(file);
//定义请求体的信息
String reqBody = IOUtils.toString(fis, "UTF-8");
given()
.contentType("text/xml")//设定请求内容媒体类型
.body(reqBody)//定制请求体数据
.log().headers()
.log().body()
.when()
.post("http://dneonline.com/calculator.asmx")
.then()
.log().all()
.statusCode(500);//响应断言
}
}
add.txt文件内容:
<Envelop xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<Add xmlns="http://tempuri.org/">
<intA>1</intA>
<intB>1</intB>
</Add>
</Body>
</Envelop>