当前位置: 首页 > news >正文

接口测试JSON/XML请求

目录:

  • 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>

相关文章:

  • Python批注怎么写:深入解析与实用指南
  • 2041:【例5.9】新矩阵
  • 即时设计工具对决:Figma、Sketch与XD的优劣比较
  • 【TensorFlow深度学习】RNN短时记忆缺陷与LSTM改进原理
  • TG-5510CA温补晶振用于GPS应用
  • 中间件复习之-消息队列
  • Docker 环境下 3D Guassian Splatting 的编译和配置
  • JS片段:生成 UUID
  • RabbitMQ(Direct 订阅模型-路由模式)的使用
  • C++ primer Plus第六章编程题
  • 比较(二)利用python绘制雷达图
  • 推荐ChatGPT4.0——Code Copilot辅助编程、Diagrams: Show Me绘制UML图、上传PDF并阅读分析
  • 企业打款验证API在Java、Python、PHP中的使用教程
  • YOLOv10环境搭建推理测试
  • 程序员的灵魂究竟是什么
  • [nginx文档翻译系列] 控制nginx
  • 【347天】每日项目总结系列085(2018.01.18)
  • Angular4 模板式表单用法以及验证
  • Electron入门介绍
  • gf框架之分页模块(五) - 自定义分页
  • Netty源码解析1-Buffer
  • Object.assign方法不能实现深复制
  • STAR法则
  • Vue2.0 实现互斥
  • win10下安装mysql5.7
  • 讲清楚之javascript作用域
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何使用 JavaScript 解析 URL
  • 深入浅出Node.js
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 小试R空间处理新库sf
  • linux 淘宝开源监控工具tsar
  • puppet连载22:define用法
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • $jQuery 重写Alert样式方法
  • (31)对象的克隆
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C++17) std算法之执行策略 execution
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (js)循环条件满足时终止循环
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (笔试题)分解质因式
  • (力扣)循环队列的实现与详解(C语言)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (五)Python 垃圾回收机制
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (循环依赖问题)学习spring的第九天
  • (转)C#调用WebService 基础
  • (转载)(官方)UE4--图像编程----着色器开发
  • (转载)hibernate缓存
  • *Django中的Ajax 纯js的书写样式1