在日常的测试工作中,有时会有需要调用外部接口,拿到返回数据用以满足当前的测试任务的需求。但是当外部接口不可用,或者没有提供测试用环境时,我们就需要自己来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()

我们再来运行一下试试看

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

最新文章

  1. ASP.NET Core开发-后台任务利器Hangfire使用
  2. 使用JavaService.exe(amd64)发布java服务(jdk x64)
  3. mysql 线上not in查询中的一个坑
  4. 一个四叉树Demo学习
  5. windows下mysql 控制台操作
  6. 纯CSS美化的checkbox 和 radio
  7. cocos2d CCLOG格式符号表
  8. CodeForces 621B Wet Shark and Bishops
  9. PHP做负载均衡回话保持问题参考
  10. ThinkPHP中使用PHPMailer邮件类
  11. Discuz 5.x 6.x 7.x 前台SQL注入漏洞
  12. App拉起小程序提示跳转失败
  13. UI设计篇·入门篇·简单动画的实现,为布局设置动画,用XML布置布局动画
  14. 用javascript判断当前是安卓平台还是ios平台
  15. 自定义alert弹框,title不显示域名
  16. react-native ios打包 、设置图标 启动图片
  17. Python+Selenium笔记(三):使用unittest
  18. golang语言调试
  19. ZOJ 1203 Swordfish(Prim算法求解MST)
  20. 20145203盖泽双:Java实验报告二

热门文章

  1. php 浮点数
  2. 『Scipy』常用方法记录
  3. Linux fcntl函数设置阻塞与非阻塞
  4. 015PHP文件处理——文件处理flock 文件锁定 pathinfo realpath tmpfile tempname
  5. svn: E200009: 'lib/systemd/system/dropbear@.service': a peg revision is not allowed here problem
  6. weblogic控制台定制不同权限的用户
  7. Thinking in Java笔记之类及对象的初始化
  8. 1.3 C++引用(Reference)
  9. L1-030 一帮一
  10. Python 编程核心知识体系-模块|面向对象编程(三)