Python API+Postman+jmeter

2022-11-30 19:11:42 浏览数 (2)

目录

Python API

get请求

post请求

Postman使用

jmeter

添加监听用于查看压测结果,Aggregate Report聚合报告、Graph Results图形结果、View Result in Table表格查看结果


Python API

通过python来创建api

需要使用到的包有:flask,使用pip install falsk安装即可。flask_cors,使用pip install flask_cores安装即可。flask_cores用于跨域。

get请求

示例编码:

代码语言:javascript复制
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就会变成以下样例:

跨域测试

代码语言:javascript复制
<!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请求

代码语言:javascript复制
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次还是很没有问题的。所以一般并发起来接口速度肯定慢。

祝大家有所收获。

0 人点赞