Python API+Postman+jmeter

发布于:2022-12-25 ⋅ 阅读:(337) ⋅ 点赞:(0)

目录

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请求

示例编码:

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

祝大家有所收获。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到