接口发送 xml 格式的数据如何测试?

什么是 xml ?

xml 是一种和 html 非常类似的语言,采取一定的格式展示数据。比如:
在这里插入图片描述

这个例子非常形象的指明:

这是一个便条
便条是给你的
便条是我写的
标题是:提醒
内容是:今晚八点,不见不散

xml 和 html 的区别

xml 设计的初衷在于传输数据,重点在数据;
html 设计的初衷在于展示数据,重点在展示;
html 通过和 css 的组合能展现非常美观的效果,xml 志不在此。

接口当中为什么会有 xml ?

xml 的作用和 json 实在是太像了。通过 json, 可以代替 xml 的作用:
在这里插入图片描述

以前,接口通常会采用 xml 来传输数据。而现在,大多数接口都是采用 json 进行数据传递, xml 已经被冷落了,主要的原因是:

json 数据传输量较小,xml 常常要使用各种属性,冗余信息较多;

json 支持数字, 布尔, null, 数组,对象等通用格式,xml 都是文本;
json 解析更方便
但是,还是有一些公司的接口是采用 xml, 比如大名鼎鼎的微信,很多接口还是采用 xml。原因是 xml 在一些特定领域还占有一些优势:

可读性稍微占优势;
对于 UI 页面,可以更方便的使用属性这样一种形态进行页面数据的传输,比如
安卓应用。
历史优势。xml 相比 json 发展更早,还有很多有经验的程序员偏爱 xml, Java
程序员有喜欢 xml 的倾向(现在已经很少了)。微信的很多 api 还是用 xml,
也许是出于这些原因。
xml 和 json 的区别,归根结底在于他们表达数据的方式不同,xml 用的是树形结构, json 对应的是 hash 映射。

使用工具测试 xml 数据接口
接口发送 xml 格式的数据和发送 json 几乎一样,只需要把格式改成 xml 就可以了。采用 postman 接口测试工具 往接口https://httpbin.org/post 发送以下 xml 数据:
在这里插入图片描述
postman 数据填写:
在这里插入图片描述

通过 fiddler 抓包可以查看到发送的数据:

在这里插入图片描述
通过 postman 查看返回结果:
在这里插入图片描述

通过上面的例子得出:

xml 格式的发送只需要修改请求头格式
请求头格式为 Content-Type: application/xml
使用 python 编程语言测试 xml 数据接口

使用 python 语言的 requests 库可以很方便的发送 xml 格式的数据,只需要把请求头格式换成 application/xml 就可以了:
在这里插入图片描述

xml 数据存储在文件当中
测试数据如果不是通过在代码中直接传递,而是通过文件形式存储,则使用 python 当中的 open 函数直接读取。

相应代码:
在这里插入图片描述


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具

八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到! 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XML数据驱动接口测试是一种常用的自动化测试方法,它可以通过读取XML文件中的测试数据来驱动接口测试。以下是实现XML数据驱动接口测试的步骤: 1. 创建XML文件,定义测试数据XML文件应该包含测试用例的名称、请求URL、请求方法、请求参数等信息。 2. 使用Python的xml.etree.ElementTree模块读取XML文件中的测试数据。 3. 使用Python的requests模块发送HTTP请求,并将请求参数传递给接口。 4. 解析接口返回的数据,判断测试结果是否符合预期。 5. 将测试结果写入XML文件中。 以下是一个简单的XML数据驱动接口测试的示例: ```python import requests import xml.etree.ElementTree as ET # 读取XML文件中的测试数据 tree = ET.parse('test_data.xml') root = tree.getroot() # 遍历XML文件中的测试用例 for testcase in root.findall('testcase'): # 获取测试用例的名称、请求URL、请求方法、请求参数等信息 name = testcase.get('name') url = testcase.find('url').text method = testcase.find('method').text params = {} for param in testcase.findall('params/param'): params[param.get('name')] = param.text # 发送HTTP请求,并将请求参数传递给接口 if method == 'GET': response = requests.get(url, params=params) elif method == 'POST': response = requests.post(url, data=params) # 解析接口返回的数据,判断测试结果是否符合预期 expected_result = testcase.find('expected_result').text actual_result = response.text assert expected_result == actual_result, f'Test case {name} failed' # 将测试结果写入XML文件中 testcase.find('actual_result').text = actual_result tree.write('test_result.xml') ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值