调试工具
链路调试支持轻量配置,快速开始调试,只要选择对应的业务活动,简单配置请求信息和漏数验证就可以开始调试。
1、新增调试
1.1 配置请求信息、Header
左侧列表是历史配置记录,可以选择某一条配置,直接发起调试,或者新增一条调试配置。
新增调试:
1、输入调试名称(必填):
- 如果调试名称为空,选择业务活动之后,默认把业务活动名称带过来作为「调试名称」;
- 如果调试名称不为空,选择业务活动之后,不要更改调试名称;
- 调试名称作为调试配置记录、调试结果记录的关键项。
2、业务活动(必填): - 把当前的所有业务活动展示出来,支持搜索过滤和下拉选择;
- 内容格式是:业务名称;
3、请求URL(必填): - 请求方式:支持 POST、GET、PUT、DELETE;
- 完整的 URL 地址;
4、超时时间: - 超时时间表示请求响应的等待时间,超时之后 http 请求会报超时错误,默认为 5000 毫秒,最小是500毫秒,最大没限制;
- 超时时间表示施压端等待被压测端响应的超时时间
- 点击问号显示弹框
5、302 跳转(默认开)
允许跳转到其他页面的状态码,最大跳转次数为10次,否则按照当前请求的返回结果统计。
点击问号显示弹框
6、请求 Header - Content-Type 的值是自动生成的,组成格式为:请求Body 的Content-Type类型+编码格式;
- 另外要填自定义的 Header,可以在文本框输入,提示语:「以 Key/Value 形式填写, 多对 Key/Value 用换行表示,如 :
key1:value1
key2:value2」 - 调试请求Header后台会默认自动加上调试标,让 Agent 可以准确定位调试过程日志内容,值为:User-Agent=PerfomanceTest;
1.2 配置请求 Body(非必填)
选择 x-www-form-urlencoded 类型
1、切换到请求 Body,Content-Type 默认选中 x-www-form-urlencoded 格式:
- 提示语「不同键值对(Key/Value)以 JSON 格式填写,如:{“userId”:12,”userName”:”Shulie”}」;
- 需要对填写内容进行编码,以便服务器可以识别,编码格式可选值为:UTF-8、GBK,默认 为UTF-8。
- 如果选择此 Content-Type类型,编码格式为 UTF-8,那么请求 Header 会自动填充值Content-Type:application/x-www-form-urlencoded;charset=UTF-8,其中 UTF-8 就是编码格式,会根据选择的编码格式来填充
选择raw 类型
1、选择 row 类型,默认选中 JSON(application/json)
- 提示语:「请根据所选类型的格式输入」;
- 支持的类型有
JSON(application/json)、
JAVASCRIPT(application/javascript)、
TEXT(text/plain)、
XML(application/xml)、
XML(text/xml)、
HTML(text/html); - 如果选择此 Content-Type类型,类型为JSON(application/json),那么请求 Header 会自动填充值Content-Type:application/json,相当于把类型括号中的内容作为Content-Type的值;
9.1.3数据验证配置(非必填)
1、漏数验证配置用于在查看是否会涉及漏数,漏数包含2 种情况
业务流量不能进入影子区域;
压测流量不能进入业务区域。
2、数据验证配置的数据源直接与业务活动关联,只做展示用途,不可操作,在调试结果是会连接配置好的数据源,然后执行验证命令来做漏数检查。
1.3 开始调试&保存配置
- 当配置完必要的信息,就可以开始调试或者保存配置,必要的信息:
- 调试名称(必填),是否重复校验,重复不可往下执行;
- 业务活动(必填);
- 请求域名(必填),并且校验域名是否 http://或者https://;
- 超时时间>0;
- 302 跳转(非必填);
- 请求 Header(非必填);
- 请求 Body(非必填);
开始调试
- 点击开始调试之后,先校验是否通过,通过后会有一个二次确认弹框,弹框文案「是否确认开始调试?调试会发起调试流量,调试时间大约持续 1 分钟,期间会收集调试日志数据。」
- 确认之后保存当前配置,如果是克隆的则新增一条配置记录,如果是编辑的则覆盖当前配置,并生成一条调试结果记录,调试结果状态为「调试中」,直接跳转至调试结果页;
- 单条调试配置项只能开启一个调试,如果有正在调试的,弹框提示「一个配置项同时只能有一个调试,请等调试结束后再开始调试」。
保存配置
- 保存配置会先校验是否通过,通过后生成一条调试配置记录,并保存所有填写项、操作项,包括调试名称、业务活动、请求域名、超时时间、跳转开关状态、请求 Header、请求 Body、漏数验证配置;
- 如果是克隆的配置项,点击保存配置,则新增一条配置记录;
- 如果是修改的配置项,调试名称不可修改,点击保存配置,则不会新增配置记录,只在原来的配置记录基础上保存修改的信息。
2、调试结果
每次开始调试都会生成一条调试结果,可以进入查看每次调试结果详情。
1.调试结果 ID:每条调试结果的 ID;
2.调试名称:对应调试配置的调试名称;
3.业务活动:对应调试配置的业务活动;
4.调试结果:调试结果有以下几种状态:
- 调试中:当点击「开始调试」时,调试结果状态为调试中,由于要收集其他数据,如日志、堆栈、机器等信息,调试中状态持续时间最高 1 分钟,此时也可以进入查看查看调试结果页面;
- 调试失败:调试完成后,当包含有请求状态码为非 200、配置异常、调用栈异常、请求超时等情况都表示为调试失败;
- 调试成功:非调试失败的情况则为成功;
5.调试时间:发起该次调试的时间;
6.操作人:发起该次调试的人员账号;
7.操作: - 查看:可以进入查看调试结果;
- 删除:二次弹框确认,删除本次调试结果。
2.1 调试结果详情页
调试结果页可以查看请求响应的结果、配置异常、调用栈异常、应用(Agent)日志、漏数验证等信息,辅助测试人员来快速发现压测链路是否有异常,简单的配置异常会给出处理建议,复杂的异常可能需要通过调用栈、应用日志等信息来一起定位排查。
请求信息
- 业务活动、请求域名、请求 Header、请求 Body 都是直接读取调试配置的内容;
- 请求时间:发起调试的时间;
- 调用总时长:请求的总耗时,单位毫秒;
响应信息
- 响应状态码:显示当前请求的状态码;
- 响应 Header:返回的 Header 信息;
- 响应 Body:响应的 Body 信息;
- TraceID:当钱请求的 TraceID;
- 调试结果 ID:调试结果的唯一 ID;
- 调试名称:读取当前调试配置的名称;
- 操作人:发起该调试的用户名称;
- 调试结果:
调试中:调试状态持续时间最高 1 分钟,此时也可以进入查看查看调试结果页面,后台会给调试完成的标志,调试完成后显示失败或成功;
失败:
1)响应请求状态码非 200;
2)出现配置异常;
3)出现调用栈异常;
4)漏数验证有漏数;
成功:没有出现失败的情况,则为成功。
2.2 调试结果页-配置异常
配置异常展示当前链路维度上,涉及到哪些配置异常,并给出处理建议,让测试人员可以快速解决链路问题,顺利发起压测;
- 应用:当前异常出现在哪个应用;
- 异常类型:当前配置异常的类型,包含影子库表异常、白名单异常、挡板异常、Job 任务异常、压测前检查的所有异常、应用节点版本异常等;
- 异常编码:在配置异常表对应的异常编码,编码格式带有异常类型+ID,方便高效识别;
- 异常描述:对异常做业务优化描述,方便快速理解;
- 处理建议:对异常给出处理建议;
- 异常时间:异常发现的时间;
- 支持按异常应用、异常类型、异常编码组合搜索,搜索结果同时满足多个搜索条件。
2.3 调试结果页-调用栈
调用栈展示当前请求的调用链路经过的节点信息,并展示当次请求每个节点的日志信息。每个节点有更详细的节点信息,辅助测试人员来排查、定位更复杂的链路问题。
当某一行有配置异常、异常堆栈、失败状态,则当前行高亮显示;
压测标:每一行都显示当前是压测流量,还是业务流量;
方法:当前行调用的方法名;
应用/中间件:当前方法所属的应用和中间件;
服务名:当前方法归属的服务;
状态:当前方法调用状态是否成功;
更多信息:点击展开当前节点详细信息。
2.4 调用栈节点详情
节点详情包含节点信息、出入参数、堆栈异常、调试日志、机器性能,通过节点更相信的信息来辅助定位异常。
- 方法:节点方法名
- 应用、中间件:当前节点所属应用中间件
- 耗时:当前节点调用耗时;
- TraceID:当前链路的 TraceID;
- RpcID;当前节点的 RpcID;
- 上游应用:上游调用者所属的应用;
- 输入参数:调用当前节点的输入参数;
- 输出参数:当前节点返回的参数;
- 状态:当前节点调用成功与否的状态;
- 配置异常:当前节点出现的配置异常(不一定会有配置异常出现);
2.5 堆栈异常
展示节点异常堆栈日志信息;
2.6 节点调试日志
展示节点调试日志
2.7 机器性能
类型:当前节点的CPU 利用率、CPU 负载、内存李永利、堆内存综合、IO ;
2.8调试结果页-应用日志、Agent日志
测试人员也可以在线查看每个应用、每个实例的应用日志和 Agent 日志。
2.9调试结果页-数据验证
可以通过漏数结果详情可以查看每个数据源是否有漏数,或者是否验证异常;
2.数据验证结果有以下情况:
a.有漏数:数据源下有任何验证命令有漏数时,则数据源验证结果为有漏数;
b.验证异常:数据源下有任何验证命令的结果出现验证失败时,漏数验证结果为验证失败;
c.未验证:数据源下有任何验证命令的结果出现未验证时,漏数验证结果为未验证;
d.无漏数:数据源下所有验证命令的结果均无漏数,则数据源验证结果为无漏数;
如果出现 a、b、c 等情况属于调试失败。