核心提示:一、背景测试过程中,我们常常会遇到需要mock测试数据的情况:接口未开发完成提前介入测试、由于种种原因无法获得真实账号真实数据去测试,本次mock的是后端A返回数据,展示逻辑是后端B调用后端A接口,将...
一、背景
测试过程中,我们常常会遇到需要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请求方式