zoukankan      html  css  js  c++  java
  • PYTHON之MOCK WEB接口

    在日常的测试工作中,有时会有需要调用外部接口,拿到返回数据用以满足当前的测试任务的需求。但是当外部接口不可用,或者没有提供测试用环境时,我们就需要自己来mock一个接口的返回内容了,先让我们看一看下面的这段代码

    from wsgiref.simple_server import make_server
    
    def application(environ,response):
        response('200 OK', [('Content-Type', 'text/html')])
        res = b'BestTest'
        return [res]
    
    http = make_server('',8000,application)
    print('server in 8000....')
    http.serve_forever()

    上面的application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:

    • environ:一个包含所有HTTP请求信息的dict对象;
    • response:一个发送HTTP响应的函数。

    response('200 OK', [('Content-Type', 'text/html')])则是将http响应的header发出去,同时需要注意的是只能发送一次。response()函数会接收两个参数,一个是HTTP响应码,也就是'200 OK',一个是一组list表示的HTTP Header,每个Header用一个包含两个str的tuple表示。

    直接运行这段代码,同时请求我们本机的ip:8000 或127.0.0.1:8000这个地址,在这时会发现我们设置的返回结果出现在了屏幕上。

    但是问题就来了,有的人会问:我要的接口返回的是一段json返回呀,你这个只是一个字符串的返回我根本用不了啊,那么让我们来试试下面这一段

    from wsgiref.simple_server import make_server
    import json
    
    def application(environ,response):
        response('200 OK', [('Content-Type', 'text/json')])
        res = {'data':[{"class":'BestTest性能测试',"Teacher":'安大叔'},
                       {"class":'BestTest性能测试',"Teacher":'liml'}]}
        return [json.dumps(res).encode('utf-8')]
    
    http = make_server('',8000,application)
    print('server in 8000....')
    http.serve_forever()

    我们再来运行一下试试看

    好了,这下返回的结果可以使用了。

  • 相关阅读:
    nginx 部署
    win 7 系统ie浏览器升级11版本后,f12功能不可用的问题
    selenium 调用键盘按键
    selenium + python 环境搭建
    解决word2013老是打开未响应情况
    win7 64位备份时, 无法启动服务,0x80070422
    个人学习网站收集
    矩形后旋转后顶点坐标的求解
    Acrobat_8_Pro_SC 激活老是提示你输入的授权码无效
    DLL用def定义文件来导出重载函数(转)
  • 原文地址:https://www.cnblogs.com/xiaowenshu/p/10237330.html
Copyright © 2011-2022 走看看