目录
1 挡板程序的意义所在
压测或接口测试的时候,需要测试自己系统的性能或功能,不需要关注三方系统的,那么就需要写一个服务代替三方系统返回数据。
但是作为一个有coding能力的测试,找开发去写,是不是感觉面子挂不住,那么我们自己写一个!!!
2 需求分析
打个比方:
三方接口路径为:/api/v1/notify
正常返回为:
{"code":1,"msg":"success"}
我们单独写这么一个接口,还是比较简单的。但是如果接口路径改为了 /api/v1/testnotify 呢?我们需要再写一个?那就有点累了。如果返回也改了呢?。。。
接下来看我操作
3 开始写
我们用最简单易学的python+django来实现这个需求。
3.1 python+django环境搭建
安装python
去官网下载python安装包链接: https://www.python.org/downloads/
直接exe安装即可
安装django
pip install django
安装pyyaml
pip install pyyaml
3.2 搭建项目
3.2.1 创建项目
创建一个django项目
cmd中执行
django-admin startproject demo
创建一个应用
cmd中执行
django-admin startapp demoApp
如下:
3.2.2 添加一个配置文件
再demoApp目录下添加一个配置文件conf.yaml
文件内容包含 path、response,如下:
3.2.3 加载配置文件
在demoApp目录下添加一个py文件:loadConf.py,用来读取配置文件,如下:
3.2.4 添加接口
在demoApp目录的views.py文件中添加一个接口,如下:
该接口实现两个功能:
- 打印请求信息到控制台
- 以json格式返回配置文件中的response字段内容
3.2.5 配置接口路径
在demo目录下的urls.py文件中配置接口请求路径,如下:
3.2.6 修改项目配置
修改demo目录下的settings.py文件,支持其他ip访问、直接csrf,如下
3.3 启动项目看效果
3.3.1 启动项目
cmd中启动项目,命令如下:
python manage.py runserver 0.0.0.0:8080
3.3.2 浏览器测试
浏览器访问 http://192.168.2.111:8080/notify 如下:
3.3.3 post请求(json格式)测试
postman访问接口,post请求(json格式),如下:
控制台日志如下:
3.3.4 post请求(form表单)测试
postman访问接口,post请求(form表单),如下:
控制台日志如下:
3.3.5 get请求测试
postman访问接口,get请求,如下:
日志如下:
4 实际应用
接下来就是修改实际项目中的配置文件,将调用三方的接口地址改为你本地的。
应用场景:
1、业务处理成功后,调用第三方通知接口,三方给响应是否接口成功(如果成功,业务结束;如果不成功,隔1分钟再次回调)
2、屏蔽掉第三方业务处理耗时,测试自己业务系统的性能情况
需要另一个接口怎么办?
修改conf.yaml后,重新启动项目即可
快来联系我吧