python--利用列表推导式快速生成xml格式数据
在接口自动化测试中,我们经常将要发送的数据放到excel里。
json数据放至excel方便,但最近的一个测试,数据是xml格式发送的
如下:
属性 |
必选/可选 |
描述 |
||||
1. |
Message |
Element |
M |
信息开始,XML根元素 |
||
2. |
Version |
Attribute |
M |
协议版本信息,取值为1.0 |
||
3. |
Header |
Element |
M |
消息头 |
||
5. |
MsgType |
Attribute |
M |
取值为包头的命令字值 |
||
MsgSeq |
Attribute |
M |
取值为包头的消息序列号 |
例如:
<?xml version="1.0" encoding="UTF-8"?>
<Message Version="1.0">
<Header MsgType="0x4001" MsgSeq=""/>
....
</Message>
在实际测试中不可能将所有数据放至excel中,这样太麻烦,更改也痛苦,所以将数据设成如下:
Name | Data | url | Method | MsgType | Response | token |
用户登陆-正确密码 | LogonId:15622222222 Password:k4y5eMcjTbNp/ncsaaD8OA== UserType:1 |
/spi/login | POST | LoginRequest |
<Result RetCode="200" RetDesc="操作成功"/> <LoginResponse> <SessionId>xxxx</SessionId> </LoginResponse> |
否 |
用户登陆-错误密码 | LogonId:156222222 Password:111111 UserType:0 |
/spi/login | POST | LoginRequest |
<Result RetCode="200" RetDesc="操作成功"/> <LoginResponse> <SessionId>xxxx</SessionId> </LoginResponse> |
否 |
用户登陆-错误的用户类型 | LogonId:156222222 Password:111111 UserType:3 |
/spi/login | POST | LoginRequest |
<Result RetCode="200" RetDesc="操作成功"/> <LoginResponse> <SessionId>xxxx</SessionId> </LoginResponse> |
否 |
在python中使用列表推导式,一句话就生成相应的xml数据,简单实现,截取的部分代码如下:
读取excel这里不罗列
dd=testDate.strip().split()
aa=dict(tuple(item.split(':') for item in dd))
xmlheader='<?xml version="1.0" encoding="utf-8"?><Message Version="1.0"><Header MsgType="%s" MsgSeq="1"/><%s>' % (infoType,infoType)
xmlbody="".join([ '<%s>%s</%s>' % (i,v,i) for (i,v) in aa.items()]) #形成XML文件
xmltail='</%s></Message>' % infoType
xml=xmlheader+xmlbody+xmltail
小技巧,供有需要的人参考
python--利用列表推导式快速生成xml格式数据的更多相关文章
- Python基础-列表推导式
python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...
- python 3列表推导式的的一点理解!
python 3列表推导式的的一点理解! Python的列表推导式对于新手来说一般都难以理解,简单看个例子: [x * x for x in range(1,100)] 上面是一个很简单的列表推导式, ...
- python基础——列表推导式
python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...
- Python之列表推导式
我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...
- Python的列表推导式,字典推导式,集合推导式使用方法
推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...
- Python的列表推导式
1.列表推导式书写形式: [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 2.举例说明: #!/usr/bin/python # -*- codi ...
- Python基础-列表推导式、匿名函数、os/sys/time/datetime/pymysql/xlwt/hashlib模块
列表推导式 [表达式 for 变量 in range(n) if 条件] 等效于 for 变量 in in range(n): if 条件: 表达式 优点:书写方便,缺点:不易读 注意:用的是方括号 ...
- Python函数——列表推导式、生成器与迭代器
列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...
- python - list 列表推导式
一.如有两个list,分别为: a = [1,2,3,4,5,6]b = ["a","b","c","d"," ...
随机推荐
- 【WP8】同步执行异步代码
微软的StorageFile只支持异步的方式进行文件操作,我之前也封装过一个StorageHelper,但是当所有的方法都是异步的时候也带来一些问题 1.比如我们不能在构造函数调用异步代码(等待), ...
- Hopewell Project Sharing项目总结分享PPT
这篇随笔记录的是2013年底,Hopewell Project已经成功验收后,开项目分享会所编写的PPT. 由于此项目是本人带领Team成员一起开发,而且关键技术是自己把控,所以公司希望能开个项目分享 ...
- 【ML】人脸识别
https://github.com/colipso/face_recognition https://medium.com/@ageitgey/machine-learning-is-fun-par ...
- koa2实现拦截器进行登录前session校验
//定义允许直接访问的url const allowpage = ['/login','/api/login'] //拦截 function localFilter(ctx) { let url = ...
- JIRA 初体验
JIRA 使用神奇的JQL查询数据,很nice啊 ! 官网API: https://docs.atlassian.com/jira/REST/latest/#d2e2344 测试一下search: ...
- 怎么设置BarTender中二维码大小为25*25
有小伙伴近期问了小编一个问题,说客户需要25*25大小的QR Code二维码,用BarTender怎么做出来?想要指定条形码的大小,还得BarTender符号与版本选项来帮忙.本文小编就来给大家详细讲 ...
- Blender 编辑模式
1.如何进入编辑模式 可直接通过“Tab”快捷键进入编辑模式,或者选择界面底部的下拉列表: 如果想退出编辑模式,可再按下“Tab”键退出. 2.编辑选择 进入编辑状态后,我们可以通过鼠标右键来选择某个 ...
- 开发者如何更好的选择和适应NoSQL的5个阶段
基本含义 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.NoSQL的拥护者们提倡运用非关 ...
- Java按钮控件数组实现计算器界面
编写程序,通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现模拟的计算器界面. 思路如下: 创建一个类,通过extends使其继承窗体类JFrame: 创建一个JFrame对象,使用JFr ...
- SpringMVC由浅入深day02_9RESTful支持
9 RESTful支持 9.1 什么是RESTful RESTful架构,就是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. RESTful( ...