接口测试之XML响应断言

目录

  • XPath 基本语法
  • XML 响应结果解析
  • XML 响应结果断言

XML 响应数据

  • 如何提取 AddResult 中的值?
复制代码
  <soap:Body>
      <AddResponse xmlns="http://tempuri.org/">
        <AddResult>4</AddResult>
      </AddResponse>
  </soap:Body>

XPath 简介

  • 是 XML 路径语言
  • 是 XML Path Language 的缩写
  • 是用来确定 XML 文档中某部分位置

XPath 语法

XML 响应断言

java 复制代码
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;
import static org.hamcrest.Matchers.equalTo;


public class TestAssertionXML {
    @Test
    void testXML() throws IOException {

        // 定义请求体数据:源自文件对象
        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)  // 定制请求体数据
        .when()
                .post("http://dneonline.com/calculator.asmx")  // 发送请求
        .then()
                .log().body()  // 打印响应体信息
                .body("//AddResult.text()", equalTo("2"));  // 响应断言

    }
}
相关推荐
葵续浅笑5 分钟前
LeetCode - 杨辉三角 / 二叉树的最大深度
java·数据结构·算法·leetcode
装不满的克莱因瓶15 分钟前
【Java架构师】各个微服务之间有哪些调用方式?
java·开发语言·微服务·架构·dubbo·restful·springcloud
N 年 后27 分钟前
cursor和传统idea的区别是什么?
java·人工智能·intellij-idea
CodeLongBear1 小时前
从Java后端到Python大模型:我的学习转型与规划
java·python·学习
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 94: 最长的斐波那契子序列的长度
java·数据结构·算法·leetcode·深度优先·动态规划
Zz_waiting.1 小时前
统一服务入口-Gateway
java·开发语言·gateway
ada7_1 小时前
LeetCode(python)——49.字母异位词分组
java·python·leetcode
DyLatte1 小时前
AI时代的工作和成长
java·后端·程序员
青春不流名1 小时前
nginx
java
.ZGR.1 小时前
第十六届蓝桥杯省赛 C 组——Java题解1(链表知识点)
java·算法·链表·蓝桥杯