python接口测试3-JSON格式

前端之家收集整理的这篇文章主要介绍了python接口测试3-JSON格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

什么是JSON?

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

数据格式:

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

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

from flask @H_404_8@import@H_404_8@ Flask,request,jsonify

app = Flask(__name__@H_404_8@)

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

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

@H_404_8@if __name__ == '__main__'@H_404_8@:
    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()解析为字典格式,进行断言
@H_404_8@ requests
@H_404_8@ json

base_url = http://127.0.0.1:5005"

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

@H_404_8@:
    test_sub_normal()

运行程序:

 

猜你在找的Python相关文章