简单灵活的http mock工具

Apache-2.0
Python
Linux/Windows/Mac
guolong123 · 2020年11月13日 · 4017 次阅读 · 0 条评论

http-faker

介绍

灵活又简单的 mock 服务

starDownloadspypi version

gitee 地址: https://gitee.com/guojongg/http-faker

httpfaker 基于 faker 和 flask 库,提供强大的逻辑处理能力;通过对配置文件(yaml/json)的描述,可返回想要的任意数据。

支持反向代理模式,只需要设置一个目标服务器地址,即可变成一个反向代理服务器;当匹配到 mock 规则时返回 mock 数据;未命中时做代理请求并返回请求结果。

httpfaker 针对返回数据的规则编写灵活,简单。除了可以满足传统的接口 mock 外,还支持处理业务逻辑,可实现真正的业务功能。

适用于:

  • 前端人员: 前后端分离开发,无需等到后台接口实现即可开始进行页面请求
  • 测试人员: 提前进行接口测试代码编写;服务未至,用例先行
  • 其他需要写一个简单 api 的人员: 通过 yaml 文件配置,可减少开发代码;无需关注请求处理部分,只需关注自己的业务逻辑即可。

简单使用

# 安装
pip install httpfaker

# 简单使用
httpfaker init
cd httpfaker-project
httpfaker --proxy http://example.com # 指定代理地址时,将作为代理服务器对未命中的请求自动转发到指定的服务器中

img003

上面例子中使用httpfaker init预生成了一个example.yml文件,yaml 文件中描述了一个登录的场景:

  1. 前端通过post方法调用/api/login这个地址,并在请求 body 中传来了usernamepassword两个参数。
  2. httpfaker接收到请求后会按照 logic 中描述的逻辑进行业务处理:先打印了请求参数,再调用verify_accont方法,
    来验证用户名和密码是否匹配;然后调用gen_token方法,生成token
    (verify_account 和 gen_token 方法已经注册到 httpfaker 调用函数中了,注册方法见自定义方法的注册

  3. 在逻辑处理完成后,httpfaker 按照response中描述的内容进行字段返回,headers中引用了在env中定义的
    content_type; body中的code、msg、data等字段直接引用 logic 中已经生成的结果。

在上述流程中完成了用户登录到返回数据的一个完整流程,包含了业务处理部分,使 mock 服务不仅仅只是 mock,还可以包括真实的业务逻辑。

其它

  • http2api: httpfaker 支持录入接口数据,使用 http2api,只需要在前端进行请求,可以自动将请求内容转换为 httpfaker 可读的模板。
  • swagger2api: 支持将 swagger 格式的接口数据直接转换为 httpfaker 可读的模板。

完整示例

完整示例

评论列表
暂无评论.