python request 转json的时候true变成true_python执行简单的接口测试

Python接口测试实战:GET与POST请求
本文介绍了如何使用Python的requests库进行接口测试,包括GET和POST请求的实现步骤。通过实例演示了GET接口搜索功能和POST接口登录验证,展示了请求和响应的处理,帮助读者理解接口测试的基本流程。

9dafdda090188f92d631e5cada0d49f2.png

作者:良人688a466747ee3401569fcfb5f1166993.png

前言:

很多人听过接口测试,但是没了解过接口测试,现在这篇文章带你了解接口测试,相信我这并不难,这反而很有趣

一、准备

准备python3 环境

准备requests库

二、准备两份接口文档为接下来的测试做准备

这篇文章只采用常用的接口请求方法:get,post

所以我只准备了get方法和post方法的接口文档及接口

接口地址:http://v.baidu.com/v?word=知否知否应是绿肥红瘦&ie=utf-8

请求方式:get

功能说明:搜索片名

          参数名         说明

参数:  word          片名

参数:  ie          &

### 处理 Python 中 `request` 返回 None 的情况 当在 Python 使用 Flask 框架中的 `request.json` 方法获取 JSON 数据时,如果请求体为空或不是有效的 JSON 格式,则会返回 `None` 值[^3]。为了确保程序能够稳健运行并正确处理这种情况,可以采取以下措施: #### 验证输入数据的有效性 通过检查 `request.json` 是否为 `None` 来验证接收到的数据是否有效。 ```python from flask import request, jsonify @app.route('/examplemethod', methods=['POST']) def example_method(): data = request.get_json(silent=True) if data is None: return jsonify({"error": "Invalid or missing JSON"}), 400 # 继续处理合法的JSON数据... ``` 这段代码展示了如何安全地访问 POST 请求中的 JSON 负载,并且对于不正确的负载提供了有意义的错误响应。 #### 设置默认值 为了避免因 `None` 引发潜在异常,在进一步操作之前可设定合理的默认参数作为替代方案。 ```python data = request.get_json() or {} ``` 此方法简单有效地防止了由于未定义变量而导致的应用崩溃风险。 #### 提供详细的反馈信息 向客户端发送清晰具体的报错提示有助于快速定位问题所在。 ```python if not isinstance(data, dict): return jsonify({ 'status': 'failed', 'message': f'Expected a dictionary but got {type(data).__name__}' }), 400 ``` 上述片段说明了怎样构建更友好的 API 接口文档来指导开发者调试其应用程序。 #### 完整示例 下面给出一个完整的例子,综合运用以上提到的技术手段以实现健壮的服务端逻辑: ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/process_data', methods=['POST']) def process_data(): try: payload = request.get_json(force=True, silent=True) or {} if not isinstance(payload, dict): raise ValueError('Payload must be an object') required_fields = ['field1', 'field2'] for field in required_fields: if field not in payload: raise KeyError(f'Missing required parameter "{field}"') result = { 'received': True, 'fields': list(payload.keys()) } return jsonify(result), 200 except Exception as e: error_message = str(e) status_code = 400 if isinstance(e, (ValueError, KeyError)) else 500 response = {'success': False, 'message': error_message} return jsonify(response), status_code if __name__ == '__main__': app.run(debug=True) ``` 该实例不仅考虑到了可能存在的各种异常状况,还实现了良好的用户体验设计原则——即给予用户足够的上下文帮助他们理解发生了什么以及该如何修正错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值