接口测试JSON/XML请求

server/2024/10/21 10:19:00/

目录:

  • 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 {@Testvoid testJsonStr(){//定义请求数据:jsonstrString 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 {@Testvoid 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 {@Testvoid 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>


http://www.ppmy.cn/server/47465.html

相关文章

es6中箭头的用法

在ES6&#xff08;ECMAScript 2015&#xff09;中&#xff0c;箭头函数&#xff08;Arrow Functions&#xff09;提供了一种更简洁的函数表达式语法&#xff0c;并且它们不绑定自己的this、arguments、super或new.target。这些值由外围的正常函数值&#xff08;即包含箭头函数的…

TCP的重传机制

TCP 是一个可靠的传输协议&#xff0c;解决了IP层的丢包、乱序、重复等问题。这其中&#xff0c;TCP的重传机制起到重要的作用。 序列号和确认号 之前我们在讲解TCP三次握手时&#xff0c;提到过TCP包头结构&#xff0c;其中有序列号和确认号&#xff0c; 而TCP 实现可靠传输…

迎七一党史知识竞赛答题怎么做

迎七一党史知识竞赛答题&#xff0c;不仅是对于党史知识的检验&#xff0c;更是对于参赛者学习态度和综合能力的考量。在参与这类竞赛时&#xff0c;我们需要做好充分的准备&#xff0c;掌握一定的答题技巧&#xff0c;才能取得好的成绩。 首先&#xff0c;我们要深入了解竞赛…

深入解析Java多线程:源码级别的分析与实践

Java的多线程机制是其并发编程的核心&#xff0c;对于高性能和高并发应用的开发至关重要。 一、Java多线程的基础 1.1 创建线程的几种方式 在Java中&#xff0c;有几种创建线程的方式&#xff1a; 继承Thread类&#xff1a; class MyThread extends Thread {public void run…

go语言初学02

学习 Go 语言&#xff08;Golang&#xff09;可以从基本语法和概念入手&#xff0c;然后逐步深入到高级特性和最佳实践。以下是一个推荐的学习顺序&#xff0c;帮助你系统地掌握 Go 语言&#xff1a; 1. 安装与设置 安装 Go&#xff1a;从 Go 官方网站下载并安装 Go。设置开发…

Nuxt3 中使用 ESLint

# 快速安装 使用该命令安装的同时会给依赖、内置模块同时更新 npx nuxi module add eslint安装完毕后&#xff0c;nuxt.config.ts 文件 和 package.json 文件 会新增代码段&#xff1a; # nuxt.config.ts modules: ["nuxt/eslint" ] # package.json "devDep…

内网安全:横向传递攻击(PTH || PTK || PTT 哈希票据传递)

内网安全&#xff1a;横向传递攻击. 横向移动就是在拿下对方一台主机后&#xff0c;以拿下的那台主机作为跳板&#xff0c;对内网的其他主机再进行后面渗透&#xff0c;利用既有的资源尝试获取更多的凭据、更高的权限&#xff0c;一步一步拿下更多的主机&#xff0c;进而达到控…

在鲲鹏服务器上安装nginx

华为鲲鹏服务器采用华为自研cpu ARMv8架构,提供 Windows 和多个Linux 系统 常使用 CentOS 7.6 64bit with ARM Nginx 和 Apache 一样都是一种 Web 服务器。是基于 REST 架构风格&#xff0c;以统一资源描述符URI 或者统一资源定位符URL 作为沟通依据&#xff0c;通过 HTTP 协议…