Coding执行压测操作全流程详解

2022-07-29 11:17:03 浏览数 (3)

操作概览

一、压测前准备

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. 其他案例库文档

压测工具平台问题案例库 - 云 社区 - 腾讯云

0 人点赞