封装Request类
回顾
上次我们完善了登录注册相关页面,还有后端接口,算是从0到1完成了一个功能的编码工作。可能前端部分会讲的比较粗糙,因为第一可能是笔者造诣不够,第二也跟我们直接从现有的框架进行改造有关,很多东西不是从0
写到1
,而是从1
到1.1
,但是后面不一样:
后面的页面都是咱们自己写,自己用,从0写到1
安装requests库
终端输入pip3 install requests
并执行。
构思后端Request相关接口
要知道,咱们这是一个接口测试平台(后续可能会集成UI自动化,但是这个笔者也还没有想好)。一个接口自动化平台,最核心的当然是对api的请求操作,所以咱们刻不容缓,加快进度,趁热打铁,来点干货吧。用requests
来协助我们完成接口自动化请求。
我们新建一个文件: middleware/HttpClient.py
1 | Python复制代码import datetime |
如果我是产品经理的话,那么postman就是我的原型图:
讲解一下各个方法,首先这是一个Request
请求类,他拥有核心方法: request
,目前咱们暂时先只做到支持json类的请求,后续补全form
, file
等类型的请求。
其实这个类做的事情很简单,就是把requests相关的方法剥离了出来,封装了一层。
其中构造函数提供了一些选项,包括请求的信息,url,是否以session的方式请求等等,kwargs涵盖了requests原生的参数,只要你想传,你都可以传进来。
get_elapsed
是根据postman为参照,对请求时间做的一个处理,如果大于1s的请求响应时间,那我们以秒
为单位显示,否则以毫秒
为单位显示。
response
是构造返回结构对象,对本次请求的数据进行整理。
request
就封装了requests库的核心操作,基本上属于原生处理,并且判断了http状态码。
编写request接口
新建controllers/request/http.py
1 | PYTHON复制代码from flask import Blueprint |
其实和登录/注册接口都很相似,基本上就是创立了一个blueprint,前缀是/request,后续就是引入刚才的request类,进行http请求,最后返回response。
调整run.py
我们新建了一个蓝图,需要去run.py进行注册:
1 | Python复制代码from app.controllers.request.http import req |
本节内容就到这里了,下一节咱们编写属于自己的第一个组件: postman
。又是前端内容了,咱们做一个接近postman的页面即可,不需要多高大上,做东西要抓住用户的使用习惯。毕竟咱们不是🍎,它的理念是让用户去适应它。
后端代码地址: github.com/wuranxu/pit…
前端代码地址: github.com/wuranxu/pit…
本文转载自: 掘金