API接口简介:
基于协议的http或者https
URL定位资源位置
常见的method:GET,POST,PUT,DELETE
常见的结果状态返回码:
- 200-成功
- 302-重定向
- 401-未授权
- 404-资源不存在
- 500-服务器内部错误
直观上看就是URL配合上请求数据包,得到响应数据包;
为什么要进行接口压力测试:
- 前后端分离 - 互联⽹项⽬的标准架构
- 重后端、轻前端,逻辑的重头都在后端,后端的相对压⼒更⼤,⼀般影响系统
性能的因素在后端 - 后端通过Restful API接⼝与前端交互,所以对Restful API 接⼝进⾏压测可以直
观了解到系统的性能
演练接口简介:
✓ 简单模拟⼀个订餐业务逻辑的Restful API 接⼝交互业务逻辑过程
✓ 包含POST 、 GET、DELETE 请求
✓ 使⽤python 3编写,源码在iJmeter项⽬中
https://github.com/princeqjzh/iJmeter
✓ 包含如下4个接⼝
接口设计详情:
- 登录接⼝
Path: /api/v1/user/login
Method: POST
Header: { Content-Type : application/json }
request body:
{
“authRequest”: {
“userName”: “{{login_email}}”,
“password”: “{{login_pwd}}”
}
}
response body:
❖ - Success:
{
“code”: “200”,
“message”: “login success”,
“access_token”: “[access_token]”
}
❖ - Fail:
{
"code": "401",
"message": "login fail"
}
- 浏览菜单接⼝
Path: /api/v1/menu/list
✓ Method: GET
✓ Header: {
Content-Type : application/json,
access_token : [access_token]
} ✓ request parameter:
type
可选参数: breakfast, lunch, dinner
✓ response body:
❖ - Success:
{
“breakfast”: [
{
“menu_nunber”: “01”,
“menu_price”: 5.50,
“menu_name”: “⼩笼包”
},
{
“menu_nunber”: “02”,
“menu_price”: 3.00,
“menu_name”: “⼋宝粥”
},
……
]
}
✓ response body:
❖ - Fail : 如果header中的 access_token 错误
{
"code": "401",
"message": "Unknown user info, please re-login."
}
- 订单确认接⼝
Path: /api/v1/menu/confirm
✓ Method: POST
✓ Header: {
Content-Type : application/json,
access_token : [access_token]
} ✓ request body:
{
“order_list”: [
{
“menu_nunber” : “01”,
“number” : 1
},
{
“menu_nunber” : “03”,
“number” : 2
}
]
}
✓ response body:
❖ - Success :
{
“code”: “200”,
“message”: “Order success.”,
“total”: 3 #订单菜品总数
} ❖ - Fail : 如果header中的 access_token 错误
{
"code": "401",
"message": "Please login first."
}
- 注销接⼝
✓ Path: /api/v1/user/logout
✓ Method: DELETE
✓ Header: {
Content-Type : application/json,
access_token : [access_token]
} ✓ request parameter & body:
None
✓ response body:
❖ - Success :
{
“code”: “200”,
“message”: “logout success”
} ❖ - Fail : 如果header中的 access_token 错误
{
"code": "401",
"message": "Unknown user info, logout fail."
}
服务器内部错误响应格式
由服务器内部异常引发的错误,系统将返回500响应码,并报告如下格式的错误
信息
✓ response body:
❖ - Fail :
{
“code”: “500”,
"message": "Server internal error."
}