目录

  • 1 挡板程序的意义所在
    • 2 需求分析
  • 3 开始写
    • 3.1 python+django环境搭建
    • 3.2 搭建项目
      • 3.2.1 创建项目
      • 3.2.2 添加一个配置文件
      • 3.2.3 加载配置文件
      • 3.2.4 添加接口
      • 3.2.5 配置接口路径
      • 3.2.6 修改项目配置
  • 3.3 启动项目看效果
    • 3.3.1 启动项目
    • 3.3.2 浏览器测试
    • 3.3.3 post请求(json格式)测试
    • 3.3.4 post请求(form表单)测试
    • 3.3.5 get请求测试
  • 4 实际应用

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文件中添加一个接口,如下:

该接口实现两个功能:

  1. 打印请求信息到控制台
  2. 以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后,重新启动项目即可


快来联系我吧

python写个挡板程序,维护测试人员的脸面相关推荐

  1. python实现抽奖软件(一)_详解用python写一个抽奖程序

    第一次使用python写程序,确实比C/C++之类方便许多.既然这个抽奖的数据不大,对效率要求并不高,所以采用python写,更加简洁.清晰.方便. 1.用到的模块 生成随机数的模块random 用来 ...

  2. python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...

  3. python打开word后再关闭再打开出错_用Python写了个程序调用word,运行完后再手动打开word文档就变慢了,这是为啥?...

    公司归档文件比较麻烦,于是用Python写了个程序自动归档,运行无错误.但是运行完后问题就来了,自己手动打开word文档时速度变得奇慢,打开一个文档需要1~2min,请各位同仁帮我看看.下为源代码 # ...

  4. 学完python写不出程序_我又不当程序员,为什么要学Python编程?

    记得刚毕业时,所受的第一场职场教育便是: 职场如战场,战场上只论功劳,不论苦劳. 回想起那时,无数个夜晚披星戴月加班加点,却常常被狠批在做无用功,迷茫与崩溃说来就来,甚至会觉得 " 越努力越 ...

  5. python写出的程序如何给别人使用-python如何写出表白程序

    用python编表白程序的方法: 1.创建GUI窗口,实现代码的调用. 2.编写点击触发函数,实现表白程序. 具体代码如下:from tkinter import * from tkinter imp ...

  6. python写一个表白程序_用Python写一个能算出自己年龄的小程序

    用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...

  7. python编写ftp客户端_用Python写FTP客户端程序

    0 前言: ftp客户端相信大家都用过,那么我们为什么还要用Python写ftp客户端呢? 我想有两个原因: 一是写出更好的ftp客户端应用程序,方便大家使用: 二是定制一些特殊服务,例如每天定时下载 ...

  8. python开发的gui界面,python写gui应用程序

    python 编写gui界面有哪些 安装wxPython下面是wxPython特别基础的使用方法,将以一个小程序为例来说明,它的功能是在一个文本框中输入文件名,点击open按钮,会在另一个文本框中显示 ...

  9. python写微信小程序源码示例_python实现微信小程序用户登录、模板推送

    python实现微信小程序用户登录.模板推送 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  python实现微信小程序用户登录.模板推送.txt ] (友情提示 ...

最新文章

  1. BlockChain- 以太坊架构
  2. MyBatis 插件原理与自定义插件-PageHelper 原理
  3. [iOS]利用通知实现监听系统键盘
  4. 计算机科学基础知识(四): 动态库和位置无关代码
  5. 使用详解_Log4j2使用详解
  6. CakePHP你必须知道的21条技巧
  7. 头条白板面试_如何在白板上组织您的想法并粉碎技术面试
  8. 转载:jsonp详解
  9. UVA10227 POJ2419 ZOJ1900 Forests【并查集+set】
  10. vue组件化学习第一天
  11. PHP结合redis实现秒杀活动大并发
  12. Pr 视频效果:变换
  13. 电脑怎么设置计算机系统,细说电脑怎么设置wifi
  14. 文本数据挖掘实验:文本分类
  15. 批量为Word2010尾注加方括号[]的方法
  16. 【云计算的1024种玩法】搭建个人博客
  17. Inception(盗梦空间)及代码实现
  18. 计算机视觉与深度学习基本环境安装
  19. android怎样传图片到mysql中
  20. 过年不再被逼相亲——我用python给亲戚展示2022的相亲数据

热门文章

  1. 终于有人把量化投资讲明白了
  2. 常用命名规范分类:匈牙利命名法、下划线命名法、驼峰命名法、帕斯卡命名法
  3. [ VRTK ] --- 学习日记01
  4. SEO优化帝国cms制作xml网站地图
  5. Linux配置yum仓库
  6. 是c语言正确常量的是_,下列表达中,是C语言正确常量的是________。
  7. Cadence 安装FPM 无法调出allegro 环境变量配置
  8. mysql decimal 类型_MySQL数据类型DECIMAL用法详解
  9. 计算机主机内装有硬盘和软盘 软盘是计算机,计算机主机内装有硬盘和软盘驱动器,软磁盘是计算机的外贮器,机内硬盘则是属于内贮器...
  10. CDC、TDD、BDD这些都是什么测试