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

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

  • 相关阅读:
    二维数组循环获取替换逗号(PH商品详情页中的,,,去除)
    怎样去除IE9以下浏览器的input自带的X?
    js基础之---slice()
    js基础之---parseInt()
    js去掉字符串中的空格
    div超出内容后自动显示滚动条
    Pytorch 基础
    Pytorch 线性回归问题 总结
    python 图像分类问题 (cifar10)
    Python绘图总结(seaborn库的使用)(下)
  • 原文地址:https://www.cnblogs.com/landhu/p/5505409.html
Copyright © 2011-2022 走看看