zoukankan      html  css  js  c++  java
  • python3 进行接口测试

    最近有研究接口测试,然后查了查资料,发现有两种方法,一种是使用urllib库,一种是使用requests库。而在这里,我使用的是requests库,为什么要用这个呢?

    从官方文档看出,python的标准库urllib2提供了大部分需要的HTTP功能,但是呢?API太坑,使用标准库实现会写大堆代码。而requests使用起来的话,就比较简洁。(建议使用的开发工具是 pycharm,安装插件方便。)

    下面别的不说,先上一个简单示例:

    # -*- coding:utf-8 -*-
    __author__ = u'harry'
    
    import requests #先导入包,这是必须的 url = 'http://XXXXXXXXXXXXXXX' #url:接口地址 data = {'XXXX':'XXX'} #data:接口传递的参数 headers = {'Connection':'close'} #header:传递header信息 #files:接口中需要上传文件则需要用到该参数 r = requests.post(url,data = data,headers = headers) #请求url,获得返回的数据信息 print(r.text.encode('utf-8'))                  #获得的返回数据使用text方法进行获取

     使用requets就是这么简单。

     简单的使用方法写了,各位客官可以对其进行很多的修改。比如说:封装这块代码,每次可以进行调用;可以添加循环,变为自动化,从excel中读取数据,然后进行循环取值。 等等等等。。。。

    在最后再加上一个我封装后的urllib库 与 requests库的对比代码:

    # -*- coding:utf-8 -*-
    __author__ = u'harry'
    import urllib.request
    import requests   #先导入包,这是必须的
    import urllib.parse
    
    url = 'XXXXXXX'  # url:接口地址
    data = {'XXX': 'XXX'}                     #data:接口传递的参数
    headers = {'Connection': 'close'}  # header:传递header信息
    # files:接口中需要上传文件则需要用到该参数
    
    def requests_test(url,data,headers):
        response = requests.post(url,data = data,headers = headers)        #请求url,获得返回的数据信息
        print(response.text,response.headers)                                     #返回头部信息
    
    def urllib_test(url,data):
        data1 = urllib.parse.urlencode(data).encode('utf-8')
        response = urllib.request.Request(url=url,data = data1)
        html = urllib.request.urlopen(response)
        print(html.read())
        print(html.getcode(),html.msg)        #获得html返回的状态
        print(html.headers)                   #返回头部信息
    
    
    #下面调用两个方法:
    urllib_test(url,data)
    requests_test(url,data,headers)

    关于这两个库的get请求,我就不多讲了。

    requests: requests.get("url") 

    urllib:不传入data就可以了。

    如果要解决接口返回值的unicode编码,则

    html.read().decode('unicode-escape')
  • 相关阅读:
    简单多层神经网络实现异或XOR
    思科Cisco 交换机 VTP负载均衡的配置
    AJAX异步检查,检查用户名是否存在
    C++两个队列实现一个栈
    安装SourceTree遇到的一个个坑
    Everything的简单使用
    怎么通过tomcat的catalina.out查看日志
    zk可视化工具
    Linux未安装上传下载的插件,怎么进行文件的上传下载
    Oracle修改数据库的日期
  • 原文地址:https://www.cnblogs.com/harry-xiaojun/p/6733148.html
Copyright © 2011-2022 走看看