调试工具

链路调试支持轻量配置,快速开始调试,只要选择对应的业务活动,简单配置请求信息和漏数验证就可以开始调试。

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. 点击开始调试之后,先校验是否通过,通过后会有一个二次确认弹框,弹框文案「是否确认开始调试?调试会发起调试流量,调试时间大约持续 1 分钟,期间会收集调试日志数据。」
  2. 确认之后保存当前配置,如果是克隆的则新增一条配置记录,如果是编辑的则覆盖当前配置,并生成一条调试结果记录,调试结果状态为「调试中」,直接跳转至调试结果页;
  3. 单条调试配置项只能开启一个调试,如果有正在调试的,弹框提示「一个配置项同时只能有一个调试,请等调试结束后再开始调试」。

保存配置

  1. 保存配置会先校验是否通过,通过后生成一条调试配置记录,并保存所有填写项、操作项,包括调试名称、业务活动、请求域名、超时时间、跳转开关状态、请求 Header、请求 Body、漏数验证配置;
  2. 如果是克隆的配置项,点击保存配置,则新增一条配置记录;
  3. 如果是修改的配置项,调试名称不可修改,点击保存配置,则不会新增配置记录,只在原来的配置记录基础上保存修改的信息。

2、调试结果


每次开始调试都会生成一条调试结果,可以进入查看每次调试结果详情。
1.调试结果 ID:每条调试结果的 ID;
2.调试名称:对应调试配置的调试名称;
3.业务活动:对应调试配置的业务活动;
4.调试结果:调试结果有以下几种状态:

  • 调试中:当点击「开始调试」时,调试结果状态为调试中,由于要收集其他数据,如日志、堆栈、机器等信息,调试中状态持续时间最高 1 分钟,此时也可以进入查看查看调试结果页面;
  • 调试失败:调试完成后,当包含有请求状态码为非 200、配置异常、调用栈异常、请求超时等情况都表示为调试失败;
  • 调试成功:非调试失败的情况则为成功;
    5.调试时间:发起该次调试的时间;
    6.操作人:发起该次调试的人员账号;
    7.操作:
  • 查看:可以进入查看调试结果;
  • 删除:二次弹框确认,删除本次调试结果。

2.1 调试结果详情页

调试结果页可以查看请求响应的结果、配置异常、调用栈异常、应用(Agent)日志、漏数验证等信息,辅助测试人员来快速发现压测链路是否有异常,简单的配置异常会给出处理建议,复杂的异常可能需要通过调用栈、应用日志等信息来一起定位排查。

请求信息

  1. 业务活动、请求域名、请求 Header、请求 Body 都是直接读取调试配置的内容;
  2. 请求时间:发起调试的时间;
  3. 调用总时长:请求的总耗时,单位毫秒;

响应信息

  1. 响应状态码:显示当前请求的状态码;
  2. 响应 Header:返回的 Header 信息;
  3. 响应 Body:响应的 Body 信息;
  4. TraceID:当钱请求的 TraceID;
  5. 调试结果 ID:调试结果的唯一 ID;
  6. 调试名称:读取当前调试配置的名称;
  7. 操作人:发起该调试的用户名称;
  8. 调试结果:
    调试中:调试状态持续时间最高 1 分钟,此时也可以进入查看查看调试结果页面,后台会给调试完成的标志,调试完成后显示失败或成功;
    失败:
    1)响应请求状态码非 200;
    2)出现配置异常;
    3)出现调用栈异常;
    4)漏数验证有漏数;
    成功:没有出现失败的情况,则为成功。

2.2 调试结果页-配置异常

配置异常展示当前链路维度上,涉及到哪些配置异常,并给出处理建议,让测试人员可以快速解决链路问题,顺利发起压测;

  1. 应用:当前异常出现在哪个应用;
  2. 异常类型:当前配置异常的类型,包含影子库表异常、白名单异常、挡板异常、Job 任务异常、压测前检查的所有异常、应用节点版本异常等;
  3. 异常编码:在配置异常表对应的异常编码,编码格式带有异常类型+ID,方便高效识别;
  4. 异常描述:对异常做业务优化描述,方便快速理解;
  5. 处理建议:对异常给出处理建议;
  6. 异常时间:异常发现的时间;
  7. 支持按异常应用、异常类型、异常编码组合搜索,搜索结果同时满足多个搜索条件。

2.3 调试结果页-调用栈

调用栈展示当前请求的调用链路经过的节点信息,并展示当次请求每个节点的日志信息。每个节点有更详细的节点信息,辅助测试人员来排查、定位更复杂的链路问题。

当某一行有配置异常、异常堆栈、失败状态,则当前行高亮显示;
压测标:每一行都显示当前是压测流量,还是业务流量;
方法:当前行调用的方法名;
应用/中间件:当前方法所属的应用和中间件;
服务名:当前方法归属的服务;
状态:当前方法调用状态是否成功;
更多信息:点击展开当前节点详细信息。

2.4 调用栈节点详情

节点详情包含节点信息、出入参数、堆栈异常、调试日志、机器性能,通过节点更相信的信息来辅助定位异常。

  1. 方法:节点方法名
  2. 应用、中间件:当前节点所属应用中间件
  3. 耗时:当前节点调用耗时;
  4. TraceID:当前链路的 TraceID;
  5. RpcID;当前节点的 RpcID;
  6. 上游应用:上游调用者所属的应用;
  7. 输入参数:调用当前节点的输入参数;
  8. 输出参数:当前节点返回的参数;
  9. 状态:当前节点调用成功与否的状态;
  10. 配置异常:当前节点出现的配置异常(不一定会有配置异常出现);

2.5 堆栈异常

展示节点异常堆栈日志信息;

2.6 节点调试日志

展示节点调试日志

2.7 机器性能


类型:当前节点的CPU 利用率、CPU 负载、内存李永利、堆内存综合、IO ;

2.8调试结果页-应用日志、Agent日志

测试人员也可以在线查看每个应用、每个实例的应用日志和 Agent 日志。

2.9调试结果页-数据验证


可以通过漏数结果详情可以查看每个数据源是否有漏数,或者是否验证异常;

2.数据验证结果有以下情况:
a.有漏数:数据源下有任何验证命令有漏数时,则数据源验证结果为有漏数;
b.验证异常:数据源下有任何验证命令的结果出现验证失败时,漏数验证结果为验证失败;
c.未验证:数据源下有任何验证命令的结果出现未验证时,漏数验证结果为未验证;
d.无漏数:数据源下所有验证命令的结果均无漏数,则数据源验证结果为无漏数;
如果出现 a、b、c 等情况属于调试失败。

文档更新时间: 2021-12-16 17:28   作者:ShuLieVip