操作概览
一、压测前准备
1.压测集群购买与压测服务部署
Jmeter-Suite压测工具部署文档 - 云 社区 - 腾讯云
2.构建Coding项目
Coding平台项目构建指南 - 云 社区 - 腾讯云
3.执行demo脚本验证集群
执行demo脚本验证压测集群前需确认如下三个事项:
(1)确认压测集群的kubeconfig文件已经上传到Coding仓库的kubeconfig目录下。若无,请参考下述步骤进行配置。
a. 进入Coding项目后点击“代码仓库”,将压测脚本上传至kubeconfig目录下,点击“kubeconfig”右边的三个点,点击“上传”
b. 点击“选择文件”区域,选择压测集群的kubeconfig进行上传
c. 点击“确认”,完成上传。
(2)确认压测所需构建计划(包括但不限于压测执行与压测停止)已全部配置上最新版本的压测集群。具体检查步骤如下:
a. 进入Coding项目后点击“代码仓库”,找到已经上传完成的kubeconfig,复制其文件路径
b. 进入Coding项目后点击“构建计划”,点击压测所需构建计划右上角的三个点,然后点击“设置”
c. 在“变量与缓存”配置页,编辑KUBECONFIG配置默认值,修改为步骤a里复制的文件路径
d. 点击“确认”,完成修改。
(3)确认Coding压测构建机器ip已添加到集群外网访问白名单中。若无,请参考本文FAQ的第一个问题。
确认完成后,开始执行如下步骤进行验证:
(1)进入Coding项目后点击“持续集成->构建计划”,选择已经配置好压测集群的构建计划,点击“立即构建”
(2)在立即构建配置页面,参考本文档第5章节压测执行部分,按照默认配置执行压测任务,执行仓库里的 testScript/Test.jmx 脚本,对百度网页发起100并发的压测,点击“立即构建”
(3)参考本文档第9章节查看压测结果,如下图所示,能够查看到grafana面板上能够展示QPS、错误率等信息,表示调试完成。
二、压测执行过程
4.上传压测脚本&数据文件
注意:上传到coding平台的脚本,后端监听器中需新增一个tag,TAG_Random ${__Random(0000000000,9999999999,)},详情如下:
(1)进入Coding项目后点击“代码仓库”,将压测脚本上传至teamSrcipt目录下,点击“teamSrcipt”右边的三个点,点击“上传”
(2)点击“选择文件”区域,选择本地已经调通的脚本进行上传
(3)点击“确认”,完成上传。
5.压测执行
(1)进入项目后点击“持续集成->构建计划”,点击压测执行的红色位置。
(2)弹出下列窗口,参考“参数详解”表格对参数进行修改,随后点击“立即构建”开始执行压测任务。
参数详解:
参数 | 参数值 | 参数说明 |
---|---|---|
KUBECONFIG | 自定义 | 代码仓库中的kubecofig绝对路径;若集群已经配置完毕,则压测执行时无需修改。 |
NAME_SPACE | 默认default | 无需修改 |
TEST_PATH | 自定义 | 待执行压测脚本在Coding仓库中的地址 |
Number_Of_Nodes | 自定义 | 表示需要启动的节点个数,总并发数=节点数x脚本配置的并发数,可以根据需要填写需要启动的节点数,最大不会大于压测机个数,默认为10 |
Upload_Data_File | 选项二选一 ● 上传数据文件 ● 不上传数据文件(默认值) | 选择是否上传数据文件,包含代码仓库中所有txt、csv和jar文件,第一次执行时需要选择“上传数据文件”,以后如果没有新增的数据文件默认不上传(如pod重启、压测集群刚开机,都需要重新上传一次),建议定期清理仓库中的数据文件,保障文件能快速上传完成。 |
Split_File | 选项二选一 ● 拆分数据文件 ● 不拆分数据文件(默认值) | 选择是否拆分数据文件,包含代码仓库中所有txt和csv文件,如果选择“拆分数据文件”,就不用选择“上传数据文件”,建议如果需要拆分文件时才使用,比如重复数据压测导致业务异常情况,可以选择拆分数据文件(注意:①如数据文件条数小于节点数,只会拆分数据文件条数对应的节点个数,超过条数的节点将没有数据文件;②pod重启、压测集群刚开机,都需要重新拆分一次),建议定期清理仓库中的数据文件,保障文件能快速上传完成。 |
6.压测停止
(1)进入项目后点击“持续集成->构建计划”,点击压测停止的红色位置。
(2)弹出下列窗口,参考“参数详解”表格对参数进行修改,随后点击“立即构建”停止压测任务。
参数详解:
参数 | 参数值 | 参数说明 |
---|---|---|
KUBECONFIG | 自定义 | 代码仓库中的kubecofig绝对路径;若集群已经配置完毕,则压测执行时无需修改。 |
NAME_SPACE | 默认default | 无需修改 |
三、查看压测过程数据
7.查看压测数据面板
7.1 获取数据面板信息
(1)进入项目后点击“持续集成->构建计划”,执行压测任务后点击构建任务
(2)点击进入最近的构建任务
(3)进入任务后点击“压测结果面板地址”进行grafana地址查看,账号密码也在里面
注意:如果账号密码有误请尝试密码为admin或者请联系部署压测服务的同学。
7.2 查看数据面板
(1)点击获取到的面板链接,输入账号/密码即可进入grafana,点击左上角“Home”
(2)进入后选择第一个即可,点击进入
(3)选择脚本中填写的“application”即可看到最新的压测结果,“transaction”可以选择被测的接口,右上角可以选择压测时间,查看历史压测数据。
8.查看日志
8.1 查看执行过程日志
(1)压测执行任务完成后点击刚执行的任务
(2)点击最新的构建任务进入
(3)进入后点击“查看日志”(只显示压测时间段的日志)
8.2 查看业务报错日志
(1)按照8.1的步骤执行,在压测结束后,点击“查看完整日志”
(2)往下滑动就可以看到报错内容(只显示压测时间段的日志)
四、异常处理
9.清理压测数据
(1)进入Coding项目点击“创建构建计划”
(2)选择“清理集群数据库”模版
(3)按模版填写信息,完成后点击“确定”
(4)进入新页面后点击左上角的返回即可
(5)可以在全部或未分组中查看,如需清理点击构建即可,构建完成即清理完成
注意:清理前请提前做好数据截图!
10.重启压测集群
(1)进入Coding项目点击“创建构建计划”
(2)选择“重启压测集群”模版
(3)按模版填写信息,完成后点击“确定”
(4)进入新页面后点击左上角的返回即可
五、FAQ
1.压测执行时无法连接到压测服务
问题解析:Coding无法成功访问压测集群
解决方法:在TKE上对压测集群添加Coding出口ip白名单,详细步骤参考:TKE集群添加外网访问白名单 - 云 社区 - 腾讯云
2.发压线程数不稳定
解决方法:在脚本的后端监听器中需新增一个tag,TAG_Random ${__Random(0000000000,9999999999,)},详情如下:
3. 压测结束前并发数、QPS、带宽出现攀升情况
解决方法:为已知问题,可以忽略该段压测结果。
4. 压测服务部署完成后,打开Grafana报错502
问题解析:部署完成还未执行压测任务就出现502报错,说明部署过程配置出现问题
解决方法:
(1)请根据本文档第1章节的部署文档逐步检查,尤其是检查网络相关配置,白名单策略是否开通等;
(2)最快的解决方法是重装压测集群
5. Grafana查看正常,但压测一段时间后报错502
问题解析:此时说明influxdb数据库满了,一般是写入了太多错误信息导致
解决方法:清理influxdb数据库
详细步骤:请参考本文档第9章节清理压测数据
6. 无法上传超过20M的脚本或数据文件
问题解析:Coding限制上传文件的大小
解决方法:通过git上传
详细步骤:在代码仓库中复制仓库地址URL,通过git clone URL,将代码拉到本地,把数据文件放到相应的文件夹里后,再上传到代码仓库。
代码语言:javascript复制git clone URL # 拉取代码
git add . # 将要推送的文件都添加进来
git commit -m '解释语句' # 将修改的文件提交到本地仓库
git push origin master # 推送到仓库
7. 其他案例库文档
压测工具平台问题案例库 - 云 社区 - 腾讯云