python接口测试非json的断言_python接口测试3-JSON格式

什么是JSON?

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

数据格式:

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

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

from flask importFlask,request,jsonify

app= Flask(__name__)

@app.route(/api/sub/",methods=[POST])defsub():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)

运行此接口

fd52bbb513e8d511dbe888c2bd061bb6.png

使用测试工具测试接口

910e2074fad2adfd34771c45237a7266.png

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

添加headers后访问成功。

ed05d8654c1db49ff18ed9ad98dad355.png

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

必须通过headers指定内容类型为application/json: ```headers={"Content-Type":"application/json"}

请求数据要转化为字符串: data=json.dumps(data) (使用json.dumps需要import json)

json格式的响应数据,在接口调试通过和稳定的情况下可以使用response.json()解析为字典格式,进行断言

requestsjson

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()

运行程序:

e64f67359c994f3c034638185bf05454.png

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值