zoukankan      html  css  js  c++  java
  • 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

    小技巧,供有需要的人参考

  • 相关阅读:
    自我介绍
    工作流
    spring框架
    关于建立内部会议讨论规范的想法
    论文第3章:移动绘图平台的架构设计
    迭代器、推导式、函数式编程学习笔记
    Python装饰器学习(九步入门)
    Inkpad绘图原理浅析
    从零开始创建一个插件
    Entity Framework的启动速度优化
  • 原文地址:https://www.cnblogs.com/landhu/p/5505409.html
Copyright © 2011-2022 走看看