写点什么

软件测试 | josn 和 XML 请求

  • 2023-02-22
    北京
  • 本文字数:1706 字

    阅读完需:约 6 分钟

1.json 和 XML 简介

json 是一种轻量级的传输数据格式,用于数据交互。json 请求类型的请求头中的 Content-Type 对应为 application/json.


XML 是一种可扩展标记语言,是用来传输和存储数据。XML 请求类型的请求头中的 Content-Type 对应为 application/xml 或者 text/xml,这两者格式是一样,唯一的区别是编码格式。

2.json 实战演示

实战演示代码如下(Python 版和 Java 版)。


(1)Python 演示代码


我们在 Python 编程中,使用 json 关键字参数发送 json 请求并传递请求体信息。


>>> import requests>>> r = requests.post(    'https://httbpin.ceshiren.com/post',    json = {'key':'value'})>>> r.request.headers
{'User-Agent':'python-requests/2.22.0','Accept-Encoding':' gzip,deflate'\'Accept':'*/*','Connection':'keep-alive','Content-Length':'16',\'Content-Type':'application/json'}
复制代码


如果请求的参数选择是 json,那么 Content-Type 自动变为 application/json。


(2)Java 演示代码


Java 中使用 contentType()方法添加请求头信息,使用 body()方法添加请求体信息。


import static org.hamcrest.core.IsEqual.equalTo;import static io.restassured.RestAssured.*;
public class Requests{ public static void main(String[] ages){ String jsonData = "{\"key\":\"value\"}"; //定义请求头信息的contentType为application/json given().contentType("application/json"). body(jsonData). when(). post("https://httpbin.ceshiren.com/post"). then().body("json.key",equalTo("value")).log().all(); }}
复制代码

3.XML 实战演练

实战演示代码如下(Python 版和 Java 版)。


(1)Python 演示代码


我们在 Python 编程中,使用 data 关键字参数发送 XML 请求并传递请求体信息。


import request

class TestRequests: def test_xml(self): xml = """ <?xml version='1.0' encoding='utf-8'?> <a>hogwarts</a> """ #配置请求头 headers = { 'Content-Type':'application/xml'0 } #对httpbin发起请求 r = requests.post('https://httpbin.ceshiren.com/ post',data=xml,headers=headers=headers).text print(r)
复制代码


上面示例的执行结果为 Content-Type 自动化变为 application/xml。


(2)Java 演示代码


Java 中使用 contentType()方法添加请求头信息,使用 body()方法添加请求体信息。


创建 add.xml 文件。


<Envelope xmlns="http://scheams.xmlsoap.org/soap/envelop/">      <Body>           <Add xmlns="http://tempuri.org/">                <intA>2</intA>                <intB>2</intB>            </Add>       </Body> </Envelope>   /*  * @Author: 霍格沃兹测试开发学社  * @Desc: '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'  */package ch04;
import static io.restassured.RestAssured.*;import org.junit.jupiter.api.Test;
import org.apache.commons.io.IOUtils;import java.io.File;import java.io.FileInputStream;import java.io.IOException;
public class TestXML{ @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"); //定义请求基地址 baseURI = "http://dneonl***.com/"; given() //定制请求内容媒体类型 .contentType("text/xml") //定制请求体数据 .body(reqBody) //打印请求头信息 .log().headers() //打印请求体信息 .log().body() .when() //发送请求 .post("/calculator.asmx") .then() //响应状态码断言 .statusCode(200); }}
复制代码


上面示例执行结果为 contentType 自动变为 text/xml。


更多软件测试行业资讯可关注主页了解详情哦~

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | josn和XML请求_测试_测吧(北京)科技有限公司_InfoQ写作社区