一, 背景
测试过程中, 我们常常会遇到需要 mock 测试数据的情况: 接口未开发完成提前介入测试, 由于种种原因无法获得真实账号真实数据去测试, 本次 mock 的是后端 A 返回数据, 展示逻辑是后端 B 调用后端 A 接口, 将数据传递给前端, 在前端展示.
二, 原理
python -m SimpleHTTPServer, 搭建一个 web 服务器, 将接口返回的 json 串存储在这里
1)确认接口请求地址, 假设为 www.baidu.com/a/b/c/xxx
2)建立文件夹, 把返回的 json 串放在 / a/b/c / 下面, 命名为 xxxx
3)编写一个脚本, 功能 (cd 到对应目录下, 然后执行 python -m SimpleHTTPServer 9001) 把服务启起来
通过 nginx 转发, 将请求转发到本地, 使得后端 B 请求数据的时候, 请求到第一步中搭建的 web 服务器上, 1)修改 nginx.conf 文件, 转发请求到本地(本次以 www.jd.com 转发到 123.0.0.1 上), 并重启服务
- server{
- listen 80; // 端口
- server_name www.baidu.com; // 请求的域名或者 ip,location 后面的是路径
- location /a/b/c/{
- proxy_pass https://123.0.0.1:9001; // 本地 ip
- proxy_method GET; // 将 post 请求转发成 get, 因为 post 请求出错了
- } }
2)修改服务器的 host, 加一条: 123.0.0.1 www.baidu.com
遇到的问题: 可以用 curl 123.0.0.1:9001 来检查接口是否通了
1)请求接口路径不存在 原因: json 串存放的地址和请求路径不一致
2)接口通了, 但是没有数据 原因: 不支持 post 请求方式
来源: https://www.2cto.com/kf/201805/747902.html