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"," ...
随机推荐
- C语言的基本数据类型长度
PS:以下内容是在Xcode的编辑器64位环境下的测试结果,网上有关于64位和32位各数据类型存在的差异,请自行online search. main.m #import <Foundation ...
- 性能分析Linux服务器CPU利用率
CPU度量 1. 指标范围 1.1 User mode CPU utilization+ System mode CPU utilization 合理值:60-85%,如果在一个多用户系统中us+ ...
- 为tomcat指定JDK版本
可以为tomcat指定JDK. 当系统中安装有多个版本的jdk时,可以为tomcat指定jdk版本. 在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下一行: exp ...
- 文件流方式 删除prefab空脚本
/// <summary> /// 删除一个Prefab上的空脚本 /// </summary> /// <param name="path"> ...
- 源码分析五(HashSet的内部实现)
一:首先来看看Hashset的继承体系 public class HashSet<E> extends AbstractSet<E> implements Set<E&g ...
- SpringBoot------文件上传
1.pom.xml引入依赖配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- Spring JDBC入门
Spring将替我们完成所有使用JDBC API进行开发的单调乏味的.底层细节处理工作. 操作JDBC时Spring可以帮我们做这些事情: 定义数据库连接参数,打开数据库连接,处理异常,关闭数据库连接 ...
- ios开发之--所有设备的屏幕尺寸
所有设备型号官网地址:https://www.theiphonewiki.com/wiki/Models iPhone: 机型 像素 比例 像素密度 屏幕尺寸 机型代码 发布日期 iPhone 2g ...
- 【Android】录音暂停和继续
https://www.2cto.com/kf/201410/347839.html http://blog.csdn.net/wanli_smile/article/details/7715030 ...
- php扩展AMQP,安装报错解决
接下来来安装php扩展AMQP,安装了它以后,才能用PHP操作rabbitmq.wget https://pecl.php.net/get/amqp-1.4.0.tgztar -zxvf amqp-1 ...