news 2026/11/1 3:47:51

Java接口自动化框架RestAssured-1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java接口自动化框架RestAssured-1

选择该框架的理由:
简约的接口测试DSL;
支持xml/json结构化解析;
支持xpath/jsonxpath/gpath解析方式;
顺序控制接口,简单。

环境准备:
创建maven项目,在pop.xml文件中,增加junit5和rest-assured的依赖。

<dependencies> <!-- JUnit 5 dependencies --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency> <!-- Rest-Assured dependency --> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>4.4.0</version> <scope>test</scope> </dependency> </dependencies>

接口请求构造
get请求:
参数直接在url中拼接,或用如下的方法:
.param():查询参数
post请求:
.queryParam():查询参数
.formParam():表单参数

get请求:

public class TestRestAssured { // 注解 @Test void fun2(){ given() .param("username","test123") //设置查询参数 .log().all() //打印请求信息 .when() .get("http://httpbin.ceshiren.com/get") //发起get请求 .then() .log().all() //打印完整响应信息 .statusCode(200); //断言状态码 } }

post请求:

@Test void test_post(){ given() .queryParam("username","test456") .when() .post("https://httpbin.ceshiren.com/post") //发起post请求 .then() .log().all() //打印完整响应信息 .statusCode(200); //断言状态码 }

接口测试断言
接口断言的场景:

响应结果的类型及断言:
.statusCode() //断言状态码

.headers() //断言响应头
.body() //断言响应体,内容完全匹配

json/xml请求:
构造json请求体:
json字符串:

HashMap对象+Jackson库:
添加jackson依赖

<!-- Jackson核心库 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> <!-- 请使用最新版本 --> </dependency>

编写用例:

构建xml请求体:
1、外部xml文件:

添加IOUtils依赖

<!-- Apache Commons IO 依赖 --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.8.0</version> </dependency>

测试用例中读取xml文件的数据:

xml响应断言
xpath(xml path)语法:
/ 根节点
. 现行节点
// 不管位置,选择所有符合条件的元素

  • 匹配所有元素节点
    [] 迭代器标示,从1开始
    | 支持迭代器中做多选

提取xml的响应结果的数据并断言:

json响应断言
jsonpath语法:
$ 根节点
@ 现行节点
… 不管位置,选择所有符合条件的元素

  • 匹配所有元素节点
    . 取子节点
    [] 取子节点,支持名称或下标(下标的话从0开始)
    [,] 支持迭代器中做多选
    ?() 支持过滤操作

创建json数据文件:

json响应结果解析:
rest-assured内置解析方法:

第三方json-path解析方法:
1)配置jsonpath依赖

<dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.7.0</version> <!-- 请检查是否有更新的版本 --> </dependency>

2)jsonpath提取响应内容

JsonSchema断言
作用:使用json格式编写,可以定义和校验json的数据结构,校验json数据的一致性,校验api接口请求和响应。
生成jsonSchema数据文件的步骤:
1、复制json数据
2、粘贴到在线生成工具中
3、自动生成jsonSchema数据

1、编写用例时,先写接口,请求,获取到响应结果后,复制响应结果的json数据体,用工具转换成jsonSchema
2、在target-classes下创建jsonSchema对应的json文件,将第一步转换后的jsonSchema数据粘贴上去
3、在pop.xml中添加json-schema-validator依赖

io.rest-assured
json-schema-validator
4.4.0
test

4、写用例校验 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9f9063c4cd514d62b631ab4c5fe6c610.png)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 9:31:41

基于JAVA迎新系统的设计与实现

一、系统概述本高校迎新系统以 Java 为核心开发语言&#xff0c;后端基于 SpringBoot 框架搭建稳定的服务架构&#xff0c;前端采用 HTMLCSSJavaScript 实现简洁易用的页面展示&#xff0c;数据库选用 MySQL 存储全量业务数据。系统面向管理员、教师、新生三类角色设计全流程功…

作者头像 李华
网站建设 2026/10/19 9:03:53

告别论文焦虑!手把手带你用“百考通AI”搞定本科毕业论文

从开题到定稿&#xff0c;一站式智能写作工具如何将半个月的工作压缩到一周内完成 又到一年毕业季&#xff0c;无数本科同学面对着空白的文档感到无从下手。你是否也在为“选题没方向、格式总出错、查重反复改”而熬夜&#xff1f;今天&#xff0c;我们不谈空泛的写作理论&…

作者头像 李华
网站建设 2026/10/19 13:33:26

ssm基于java的社区爱心捐赠系统(源码+文档+调试+vue)

前言 社区爱心捐赠是一个公益平台&#xff0c;专注于帮助贫困对象。通过此系统&#xff0c;社区居民可以方便地捐献各类物资&#xff0c;如衣物、食品和学习用品等。系统确保了捐赠的透明和高效&#xff0c;所有的爱心物资都能及时、准确地送达到需要帮助的人群手中。这一平台的…

作者头像 李华