Python API+Postman+jmeter

举报
红目香薰 发表于 2022/09/07 12:29:45 2022/09/07
【摘要】 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。