加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python接口测试3-JSON格式

发布时间:2020-12-20 10:01:01 所属栏目:Python 来源:网络整理
导读:什么是JSON? 一种轻量级的数据交换格式。它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言。JSON具有自我描述性,很容易理解。 数据格式: { " name " : python " , age " :5 } 接口最常见的数据格式就是JSON,现在我们来实践一下如何开发JSON格

什么是JSON?

一种轻量级的数据交换格式。它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言。JSON具有自我描述性,很容易理解。

数据格式:

{
"name":python",age":5
}

接口最常见的数据格式就是JSON,现在我们来实践一下如何开发JSON格式的API接口

from flask import Flask,request,jsonify

app = Flask(__name__)

@app.route(/api/sub/",methods=[POST])
def sub():
    if not request.json: # 如果请求数据类型非json
        return jsonify({code": 100001msg请求类型错误data: None})

    not a" in request.json or bin request.json:  如果参数中没有a或者没有b
        100002参数缺失: None})
    
    a = request.json.get()
    b = request.json.get()
    result = str(float(a) - float(b))  使用float支持浮点数相减
    100000成功": result})  使用jsonify将字典数据转换为json类型的相应数据

if __name__ == '__main__':
    app.run(port=5005)

运行此接口

?

?使用测试工具测试接口

?

这里需要注意的是此API需要传递的参数必须为JSON格式,否则会报类型错误,原因是JSON格式必须通过headers指定请求内容类型为json,Content-Type: application/json

添加headers后访问成功。

?

?

通过python代码测试上面的接口

  1. 必须通过headers指定内容类型为application/json: ```headers={"Content-Type":"application/json"}
  2. 请求数据要转化为字符串:?data=json.dumps(data)?(使用json.dumps需要import json)
  3. json格式的响应数据,在接口调试通过和稳定的情况下可以使用response.json()解析为字典格式,进行断言
 requests
 json

base_url = http://127.0.0.1:5005"

 test_sub_normal():
    url = base_url + 
    headers = {Content-Typeapplication/json"}  1. 必须通过headers指定请求内容类型为json
    data = {42}
    data = json.dumps(data)  2. 序列化成字符串
    response = requests.post(url=url,headers=headers,data=data)
     3. 响应解析 # 响应格式为: {"code":"100000","msg": "成功","data": "2.0"}
    resp_code = response.json().get() 
    resp_msg = response.json().get()
    resp_data = response.json().get()
    print(resp_code,resp_msg,resp_data)
     断言
    assert response.status_code == 200
    assert resp_code == "
    assert resp_msg == assert resp_data == 2.0'

:
    test_sub_normal()

运行程序:

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读