当前位置: 首页 > news >正文

使用python+flask设置挡板

在测试过程中,可能会需要使用挡板来模拟外部系统接口。比如涉及到外部系统接口调用时,可能会需要特定的返回,比如某个字段为指定值。或者在压测过程中,为了更准确的了解系统的性能,需要模拟外部系统的接口返回。

使用python+flask设置挡板,具体代码如下


```python
from flask import Flask, request
from xml.etree.ElementTree import fromstring, Element,SubElement,tostring

app = Flask(__name__)


@app.route('/directResponse', methods=['POST'])
def directResponse():
# 直接返回
response = {"status": 0, "message": "Success", "data": {"col1": "value1", "col2": "value2"}}
return response


@app.route('/baseOnRequest/response', methods=['POST'])
def baseOnRequest_response():
# 根据请求参数的不同,返回不同的响应
request_data = request.get_json()  # 获取json格式的请求体
age = request_data.get('age')
name = request_data.get('name')

    isadult = False
if int(age) >= 18:
isadult = True

    response = {"status": 0, "message": "Success", "data": {"username": name, "isadult": isadult}}
return response


@app.route('/getMessage/<msg>', methods=['GET', 'POST'])
def getMessage(msg):
# 请求路径中带有参数的接口
userid = request.args.get('userid', default=None)
if None == userid:
return {"errorMessage": "用户id为空,请输入!"}
if msg == 'idcard':
response = {"status": 0, "message": "Success", "userid": userid, "idcard": "110110199901011234"}
elif msg == 'mobile':
response = {"status": 0, "message": "Success", "userid": userid,
"mobiles": [{"phoneNo": "13512341234"}, {"phoneNo": "13523452345"}]}
elif msg == 'name':
response = {"status": 0, "message": "Success", "userid": userid, "relname": "真实姓名"}
else:
response = {"status": -1, "message": "没有您要查询的信息", }
return response

@app.route('/xmlResponse',methods=['POST'])
def xmlResponse():
# 构建soup协议的XML响应
envelope = Element('soap:Envelope')
envelope.set('xmlns:soap','http:www.w3.org/2003/05/soap-envelope')
body = SubElement(envelope,'soap:Body')
response = SubElement(body,'xmlResponse')
response.set('xmlns','http://example.com/soap-service')

    user = SubElement(response, 'user')
SubElement(user,'userid').text = '11111'
return tostring(envelope,encoding='unicode',xml_declaration=True)


if __name__ == '__main__':
app.run(host='127.0.0.1', port='8087', debug=True)

```

调用的结果分别如下

/directResponse

 

/baseOnRequest/response

 

 

 

/getMessage/<msg>

 

 

/xmlResponse

 

 

http://www.dtcms.com/a/410663.html

相关文章:

  • WinCC监控系统实战解析:打通物联网网关的关键步骤
  • 阜宁做网站需要多少钱厦门彩页设计
  • 【Android】 android suspend/resume总结(3)
  • 【Android】Android项目目录结构及其作用
  • 动易网站首页制作移动网站排名教程
  • 网站开发和ipv6便宜网站建设 优帮云
  • 前端笔记:HTML output标签介绍及用法
  • Atlas Mapper 教程系列 (6/10):Spring Boot 集成与自动配置
  • 挂马网站现象基于PHP网站开发的管理系统设计与开发
  • DSP28335开发中的Flash与RAM模式切换详解
  • 海珠建网站公石狮网站建设公司哪家好
  • 网站建设电话销售录音建行个人网上登录入口
  • Python全栈项目:基于深度学习的语音识别系统
  • 语音识别-流式和非流式实现方式
  • 网站被攻击 是vps问题还是dz程序建设网站的经验
  • uniapp中pinia(setup语法)使用流程
  • SimpleBEV:改进的激光雷达-摄像头融合架构用于三维目标检测
  • 一个网站制作流程qq快速登录入口
  • Flash Attention学习笔记
  • 解决 QGraphicsDropShadowEffect 导致的 UI 持续刷新
  • 用 LoRA 微调 Qwen3-0.6B 模型,打造专属宠物商店智能客服
  • 建搜索引擎网站衡东网络推广公司
  • Go test 命令完整指南:从基础到高级用法
  • apifox认证登录自动化
  • 江西网站建设哪家专业女装wordpress
  • IDEA JVM优化配置idea64.vmoptions - 保守兼容版本 兼容IDEA 2023.3.6版本【亲测可用】
  • 网站图片像素多少做视频有赚钱的网站
  • APT攻击:隐蔽战场的威胁与防御之道
  • 小兔鲜项目
  • 黑马点评学习笔记01(手机号校验(正则表达式))