zoukankan      html  css  js  c++  java
  • python获取响应某个字段值的三种方法

       近期将要对两个接口进行测试,第一个接口的响应值是第二个接口的查询条件。为了一劳永逸,打算写个自动化测试框架。因为请求和响应都是xml格式的,遇到的问题就是怎么获取xml响应的某一个值。尝试了很多博客的方法,最终代码实现如下:

    #!/usr/bin/python

    # -*- coding: UTF-8 -*-

    import requests

    import re

    import unitest

    xmlhead=('xml格式报文头')

    xmlhead=('xml格式报文体')

    result =request.post(url,data={'xmlhead':xmlhead,'xmlbody':xmlbody})

    #获取响应字符串的某一个值(可以对字符串采取下标切片方式,此处采用的是正则表达式)

     data='<key值>(.*?)</key值>'                 #将想要的值先用正则表达式替代

    result_data=re.findall(data,result.text)     #引入re模块,利用正则表达式finall函数去响应字符串result.text里匹配。

                                                              最好用re.match()或re.search()函数,因为我调用这两个函数一直报不存在此函数属性,所以调用了re.findall函数

         而今天在看视频时,获悉了两种更简单获取响应字符串某个值的方法,个人感觉比正则表达式思维给简洁,在此分享:

    result_json=result.json()                                                                #引入json模块,将响应结果转变为字典格式

    response_data=result_json[父元素1][子元素2]                                     #获取想要的值

    或 

    result_json=eval(result.text)[父元素1][子元素2]                                   #利用eval函数将字符串转变为字典,在字典中获取想要的value值

  • 相关阅读:
    线程总结(1)
    (转)远程线程DEMO
    VCL 中TList源码分析
    MVC Controller向View传值(ViewData与ViewBag)
    ASP.NET MVC 下拉框的传值的两种方式(第二种方式未完成)
    将数据在[Excel]和[任何数据源]之间导入导出_可临时保存查询结果
    服务器控件之二
    关闭窗口动画,加速窗口
    让XP控制台字符编码在UTF8与GBK之间切换
    WCF应用的编码实现
  • 原文地址:https://www.cnblogs.com/yinze/p/8166601.html
Copyright © 2011-2022 走看看