# iJmeter **Repository Path**: WeiboGe2012/iJmeter ## Basic Information - **Project Name**: iJmeter - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 14 - **Created**: 2021-12-13 - **Last Updated**: 2022-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 压力测试项目,练习用 包含: JMeter压测脚本,模拟被测试的接口应用,自动化压测样例代码 1. jmeter演示知识点: - Get请求编写 - Get请求的传参 - 获取返回值 - Post请求编写 - Post请求传参数 - 获取返回值 - JSON解析 - 正则匹配 - 动态参数传递 - 公共参数配置 - CSV导入参数配置 2. 模拟接口服务的启动方法 路径:iJmeter/application python3 ${path}/orderservice.py 3. 自动化压测 - 代码位置: automation/auto_stress_test.sh - 运行之前需要在本机配置环境变量 jmeter_path,将其指向jmeter安装的根目录 export jmeter_path=/jmeter_root_path/ - 自动化压测会在运行时依次、自动执行并发压测,并发数 10 20 30 40 50, 每组压测60秒 - 运行代码的时候请先确保当前路径处于automation目录下,然后运行 ./auto_stress_test.sh 4. 接口 ``` 登录接口================================================= POST http://192.168.10.160:9091/api/v1/user/login Header: Content-Type: application/json POST data: { "authRequest": { "userName": "user01", "password": "pwd" } } 响应: { "access_token": "3b6754f00bb0063071c5b71ce2b56b4ed0ce56a63493e785bea85b74c41ce200", "code": "200", "message": "login success" } 浏览菜单接口================================================= GET http://192.168.10.160:9091/api/v1/menu/list Header: { Content-Type: application/json, access_token: [access_token] } 响应: { "breakfast": [ { "menu_name": "\u5c0f\u7b3c\u5305", "menu_nunber": "01", "menu_price": 5.5 }, { "menu_name": "\u516b\u5b9d\u7ca5", "menu_nunber": "02", "menu_price": 3.0 }, { "menu_name": "\u6cb9\u6761", "menu_nunber": "03", "menu_price": 1.5 }, { "menu_name": "\u8336\u53f6\u86cb", "menu_nunber": "04", "menu_price": 1.0 }, { "menu_name": "\u8c46\u5305", "menu_nunber": "05", "menu_price": 1.5 }, { "menu_name": "\u70e7\u997c", "menu_nunber": "06", "menu_price": 2.0 } ], "code": "200", "dinner": [ { "menu_name": "\u8fa3\u6912\u7092\u8089", "menu_nunber": "13", "menu_price": 21.0 }, { "menu_name": "\u8c4c\u8c46\u8089\u7247\u6c64", "menu_nunber": "14", "menu_price": 15.0 }, { "menu_name": "\u539f\u5473\u4e94\u82b1\u8089\u5377", "menu_nunber": "15", "menu_price": 26.0 }, { "menu_name": "\u918b\u6e9c\u767d\u83dc", "menu_nunber": "16", "menu_price": 20.0 }, { "menu_name": "\u5730\u4e09\u9c9c", "menu_nunber": "17", "menu_price": 25.5 }, { "menu_name": "\u7ea2\u70e7\u6392\u9aa8", "menu_nunber": "18", "menu_price": 39.0 } ], "lunch": [ { "menu_name": "\u5bab\u4fdd\u9e21\u4e01", "menu_nunber": "07", "menu_price": 17.0 }, { "menu_name": "\u9505\u5305\u8089", "menu_nunber": "08", "menu_price": 25.0 }, { "menu_name": "\u7cd6\u918b\u6392\u9aa8", "menu_nunber": "09", "menu_price": 35.0 }, { "menu_name": "\u849c\u53f0\u7092\u8089\u7247", "menu_nunber": "10", "menu_price": 30.0 }, { "menu_name": "\u9178\u8fa3\u571f\u8c46\u4e1d", "menu_nunber": "11", "menu_price": 25.5 }, { "menu_name": "\u7ea2\u70e7\u8304\u5b50", "menu_nunber": "12", "menu_price": 32.0 } ] } 订单确认接口================================================= POST http://192.168.10.160:9091/api/v1/menu/confirm Header: { Content-Type: application/json, access_token: [access_token] } POST data: { "order_list": [{ "menu_nunber": "01", "number": 1 }, { "menu_nunber": "03", "number": 2 }] } 响应: { "code": "200", "message": "Order success.", "total": 3 } 注销接口================================================= DELETE http://192.168.10.160:9091/api/v1/user/logout Header: { Content-Type: application/json, access_token: [access_token] } 响应: { "code": "200", "message": "logout success" } ``` 5. 仪表盘 ![输入图片说明](image.png) ``` iJmeter/shell/jmeter_dashboard.json 下载地址https://grafana.com/grafana/dashboards/5496 ``` 6. 自动加压脚本 - iJmeter/automation/auto_stress_test.sh和jmeter脚本在同一个目录