Python API+Postman+jmeter
【摘要】 python api接口get、post请求。Postman使用以及jemter压力测试工具的使用。
Python API
通过python来创建api
需要使用到的包有:flask,使用pip install falsk安装即可。flask_cors,使用pip install flask_cores安装即可。flask_cores用于跨域。
get请求
示例编码:
import os
import json
from flask import Flask,request
app = Flask(__name__)
@app.route('/getInfo', methods=[ 'GET'])
def getInfo():
"""接口注释·获取结果信息"""
result = []
text1 = {'id':"1",'name':"小龙女",'introduce':"活死人墓,冰山美人"}
text2 = {'id':"2",'name':"小师妹",'introduce':"无崖子的小师妹"}
text3 = {'id':"3",'name':"王语嫣",'introduce':"琅嬛福地,神仙姐姐"}
text4 = {'id':"4",'name':"赵灵儿",'introduce':"灵蛇岛,灵珑小女孩"}
text5 = {'id':"5",'name':"刘亦菲",'introduce':"国民女神"}
result.append(text1)
result.append(text2)
result.append(text3)
result.append(text4)
result.append(text5)
return json.dumps(result,ensure_ascii=False)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
这里的json序列化处理中添加了ensure_ascii=False代表能显示中文。我使用list格式,方便解析啥的。
直接启动服务。
接口访问:
可以看到接口返回的数据是中文的,如果去掉ensure_ascii=False就会变成以下样例:
跨域测试
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>跨域测试</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<script>
$(function(){
$.ajax({
url: "http://172.18.116.165:8080/getInfo",
dataType: "json",
type: "get",
success: function(data) {
console.log(data);
data.forEach(element => {
document.write(element.id);
document.write(element.name);
document.write(element.introduce);
document.write("<br/>");
});
}
});
});
</script>
</body>
</html>
可以正常加载,代表是跨域数据。
post请求
import os
import json
from flask import Flask,request
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources=r'/*')
@app.route('/getInfo', methods=[ 'GET'])
def getInfo():
"""接口注释·获取结果信息"""
result = []
text1 = {'id':"1",'name':"小龙女",'introduce':"活死人墓,冰山美人"}
text2 = {'id':"2",'name':"小师妹",'introduce':"无崖子的小师妹"}
text3 = {'id':"3",'name':"王语嫣",'introduce':"琅嬛福地,神仙姐姐"}
text4 = {'id':"4",'name':"赵灵儿",'introduce':"灵蛇岛,灵珑小女孩"}
text5 = {'id':"5",'name':"刘亦菲",'introduce':"国民女神"}
result.append(text1)
result.append(text2)
result.append(text3)
result.append(text4)
result.append(text5)
return json.dumps(result,ensure_ascii=False)
@app.route('/addInfo', methods=['POST'])
def addInfo():
id=request.form.get("id")
name=request.form.get("name")
introduce=request.form.get("introduce")
result={"id":id,"name":name,"introduce":introduce};
return json.dumps(result,ensure_ascii=False)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
Postman使用
使用Postman对post访问接口进行访问测试。
jmeter
打开jmeter.bat文件
操作面板
添加组
一般小测试写100就行,没有延迟,直接启动,不重复。
添加一个http访问
请求方法,其中4访问路径需要看具体的情况添加。如果需要参数,可以在下方点击add
单独添加http请求
使用方法
添加监听用于查看压测结果,Aggregate Report聚合报告、Graph Results图形结果、View Result in Table表格查看结果
执行
保存结果
可以重命名,可以直接重写替换。
gui视图
表格视图
一般接口要求都是200毫秒。
其实只访问10次还是很没有问题的。所以一般并发起来接口速度肯定慢。
祝大家有所收获。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)