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

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

  • 相关阅读:
    Unity 绘制带颜色的流线 streamline
    Tinyply 源码阅读
    题解 [BZOJ2952]长跑
    莫比乌斯反演技巧
    题解 pyh的求和
    Java Web基础
    后端常用数据持久层模板及框架以及一些工具类模板的配置使用集合
    12306火车订票系统(C++)
    C++/Java文件读写并执行相关操作、文件复制、文件格式转换等(举例)
    《Java EE编程技术》综合应用系统开发_作业管理系统_Struts2_设计报告
  • 原文地址:https://www.cnblogs.com/landhu/p/5505409.html
Copyright © 2011-2022 走看看