Rest-assured5 - xml响应断言

1. 如何确保我们的请求是可以发送成功的。

2. 如何确保我们的接口响应是符合业务需求的。

目录

大纲

XML响应数据

Xpath介绍

Xpath语法 

编码 

Add xml的值 


大纲

本文我们将介绍:

1. Xpath基本语法。

2. XML响应结果解析。

3. XML响应结果断言。

XML响应数据

<soap: Body>
    <AddReponse xmlns = "http://tempuri.org/">
        <AddResult>4</AddResult>
    </AddReponse>
</soap: Body>

我们可以如何获取AddResult的值呢?为了解决这种难题,Xpath语言应运而生, 什么是Xpath呢。

Xpath介绍

1. 全称是XML路径语言。

2. 是XML Path Language的缩写。

3. 是用来确定XML文档中某部分位置。

4. 是基于xml的树状结构, 提供在数据结构数组中寻找节点的能力。

5. Xpath可以帮助我们解析XML文档, 从而提取关键元素信息。

Xpath语法 

Xpath描述
/根节点
.现行节点
//不管位置, 选择所有符合条件的元素
*匹配所有元素节点
[ ]迭代器标示, 序号编号从1开始
|支持迭代器中做多选

编码 

1. 使用//AddResult.text()定位xml里4的值。

2. 使用Matchers的equalTo响应断言。

package ch05_xml;
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;

import org.hamcrest.Matchers.*;


/**
 * author 大力pig
 */
public class TestParmXml {
    @Test
    public void testParmXml(){
        //定义请求体数据 : XML
        try {
            File file = new File("src/test/resources/add.xml");
            FileInputStream fis = new FileInputStream(file);
            String regBody = IOUtils.toString(fis, "UTF-8");
            given()
                    .contentType("text/xml") //设定请求内容媒体类型
                    .body(regBody) //定制请求体数据
            .when()
                    .get("http://dneonline.com/calculator.asmx")//发送POST请求

            .then()
                    .log().all()
                    .body("//AddResult.text()", equalTo("2"))
                    .statusCode(200);//响应断言
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Add xml的值 

<Envelope xmlns = "http://schemas.xmlsoap.org/soap/envelope/">
    <Body>
        <Add xmlns = "http://tempuri.org/">
            <intA>1</intA>
            <intB>1</intB>
        </Add>
    </Body>
</Envelope>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值