Skip to content

📊 结果数据结构参考 ​

📖 概述 ​

结果树(Result)是测试执行的完整留档,包含测试套件、取样器、处理器、验证器、提取器、变量等所有运行时数据。本文档列出 Result 树中各模型的完整属性,供报告集成、Allure 渲染、外部系统消费时查阅。

配套设计文档:架构设计|源码:io.github.xiaomisum.ryze.result 包 + SampleResult.java


🌳 结果树结构 ​

Result(抽象基类)
├── TestSuiteResult(suite)
│   └── children[] : Result            ← 子套件 / 取样器结果
└── SampleResult(sampler / processor)
    ├── assertions[] : AssertionResult
    ├── extractors[] : ExtractorResult
    ├── variables[]  : VariableRecord
    ├── request      : RealRequest   (按协议具体化)
    └── response     : RealResponse  (按协议具体化)

preprocessors[] / postprocessors[] 挂在任意 Result 上,元素是处理器自己的 Result(取样器类处理器为 SampleResult ),不进入 children。


🧱 核心模型属性 ​

Result(基类) ​

所有结果类的公共字段,TestSuiteResult 和 SampleResult 均继承。

属性类型说明
idString测试元素 ID
titleString测试元素标题
statusTestStatus执行状态,默认 passed
startTimeLocalDateTime开始时间
endTimeLocalDateTime结束时间
throwableThrowable执行异常
rejectByString拦截器标识(被拦截时非 null,如 XXInterceptor)
metadataMap<String,Object>元件元数据,浅拷贝留档,不做求值
variablesList<VariableRecord>本次执行产生/变更的变量增量
preprocessorsList<Result>前置处理器结果
postprocessorsList<Result>后置处理器结果

TestSuiteResult(suite) ​

继承 Result 全部属性,另加:

属性类型说明
childrenList<Result>子测试元素结果(套件/取样器)

SampleResult(sampler) ​

继承 Result 全部属性,另加:

属性类型说明
sampleStartTimeLocalDateTime取样开始时间
sampleEndTimeLocalDateTime取样结束时间
durationString由上述两时间计算耗时;任一为空时输出空串
requestRealRequest实际请求数据(按协议具体化,见 各协议字段)
responseRealResponse实际响应数据(按协议具体化,见 各协议字段)
assertionsList<AssertionResult>验证器执行记录
extractorsList<ExtractorResult>提取器执行记录

无个性化子类,DefaultSampleResult 即 SampleResult。

AssertionResult(断言/验证器记录) ​

属性类型说明
fieldString验证字段
ruleString验证规则(==、contains …)
expectedObject期望值(已求值)
actualObject实际值
statusTestStatus执行状态(passed / failed / skipped),未执行默认 skipped
messageString失败/异常消息

ExtractorResult(提取器记录) ​

属性类型说明
refNameString提取后保存的变量名
fieldString提取表达式(JsonPath / 正则等)
valueObject提取到的值
defaultValueboolean是否走了默认值分支
messageString提取失败信息

VariableRecord(变量增量记录) ​

属性类型说明
nameString变量名
rawObject原始值(定义形态,求值前的模板/定义值;提取器新增变量为 null)
valueObject本元件执行完后的实际值

TestStatus(状态枚举) ​

枚举值Allure 映射语义
disabledSKIPPED禁用,不执行
passedPASSED执行成功,所有验证通过(默认)
failedFAILED断言失败
brokenBROKEN系统错误/异常
skippedSKIPPED被跳过(含断言未执行)

📡 Request / Response 契约基类 ​

RealRequest(SampleResult.RealRequest) ​

属性类型说明
formatString契约字段。可读请求文本,由各协议子类的 format() 实现

抽象方法:format()、bytes()(请求字节,供 bytesAsString 等外部读取)。

RealResponse(SampleResult.RealResponse) ​

属性类型说明
statusint契约字段,响应状态码(各实现构造时写入)
formatString契约字段,可读响应文本,由各协议子类的 format() 实现

抽象方法:bytes()、format()。另有 bytesAsString()。

默认实现(协议未自定义时使用) ​

类属性说明
DefaultRealRequestformat/bytesformat() 输出字节串或 "ok"
DefaultRealResponsestatus = 200、format/bytesformat() 输出字节串或 "ok"

📋 各协议 Request / Response 完整属性 ​

以下字段均为该协议 Real 类的 getter 暴露属性(序列化即按此输出)。byte[] 类型字段序列化为 JSON 整数数组。密码类字段原样暴露(信息来自外部系统)。

HTTP(模块 ryze) ​

Request RealHTTPRequest

属性类型说明
formatString请求行 + 请求头 + Query + Body 的格式化文本
urlString请求 URL
methodStringHTTP 方法
queryString查询参数字符串
bodybyte[]请求体字节
versionString协议版本,如 HTTP/1.1
headersList<Header>请求头(org.apache.hc.core5.http.Header)

Response RealHTTPResponse

属性类型说明
statusint状态码
formatString响应行 + 响应头 + Body 的格式化文本
headersList<Header>响应头(org.apache.hc.core5.http.Header)
versionString协议版本
messageString状态消息
bodybyte[]响应体字节

Redis(模块 ryze) ​

Request RealRedisRequest(实现 RedisConstantsInterface)

属性类型说明
formatStringurl + 命令 + 参数
urlStringRedis 连接 URL
commandString命令
argsList<String>命令参数

Response 默认 DefaultRealResponse(状态 200,文本为返回结果字符串)。

JDBC(模块 ryze) ​

Request RealJDBCRequest(实现 JDBCConstantsInterface)

属性类型说明
formatString连接信息 + SQL + 参数
urlString数据库连接 URL
usernameString用户名
passwordString密码
sqlStringSQL 语句
argsList<Object>SQL 参数

Response 默认 DefaultRealResponse。

E-Mail(模块 ryze) ​

Request RealEMailRequest

属性类型说明
formatStringTo / Title / 正文
hostStringSMTP 主机
portString端口
useSSLBoolean是否 SSL
useStarttlsBoolean是否 STARTTLS
usernameString用户名
passwordString密码
toString收件人
titleString邮件标题
contentString邮件内容

Response 默认 DefaultRealResponse。

RabbitMQ(模块 ryze-rabbit) ​

Request RealRabbitRequest

属性类型说明
formatString地址/认证/虚拟主机 + 队列/交换机 JSON + 消息
addressString服务器地址(host:port)
usernameString用户名(默认 guest)
passwordString密码(默认 guest)
virtualHostString虚拟主机(默认 /)
queueRabbitConfigureItem.Queue队列配置
exchangeRabbitConfigureItem.Exchange交换机配置
messageString消息内容

Queue(嵌套对象)

属性类型
nameString
durableBoolean
exclusiveBoolean
autoDeleteBoolean
argumentsMap<String,Object>

Exchange(嵌套对象)

属性类型
nameString
typeString
routingKeyString

Response 默认 DefaultRealResponse。

ActiveMQ(模块 ryze-active) ​

Request RealActiveRequest

属性类型说明
formatString地址/认证 + topic/queue + 消息
addressStringBroker URL
topicString目标 Topic
queueString目标 Queue
usernameString用户名
passwordString密码
messageString消息内容

Response 默认 DefaultRealResponse。

Kafka(模块 ryze-kafka) ​

Request RealKafkaRequest

属性类型说明
formatString地址 + topic + key + 消息
addressStringBootstrap Servers
topicString主题
keyString消息键
messageString消息内容

Response 默认 DefaultRealResponse。

MQTT(模块 ryze-mqtt) ​

Request RealMqttRequest

属性类型说明
formatStringTopic + QoS + Payload
topicString主题
qosintQoS 等级
payloadString负载

Response RealMqttResponse

属性类型说明
statusint收到消息 0,无消息 -1
formatStringstatus + Body
bodyString接收到的消息内容

CoAP(模块 ryze-coap) ​

Request RealCoapRequest

属性类型说明
formatString方法 + URI + Type(CON/NON) + Content-Format + Payload
methodString请求方法
uriString请求 URI
payloadString请求体
contentFormatString内容格式
confirmableboolean是否 CON 消息(getter isConfirmable())

Response RealCoapResponse

属性类型说明
statusint响应码 value(无响应 -1)
formatString响应码 + Payload
bodyString响应体
responseCodeString响应码描述(如 2.05 Content;无响应 No Response)

WebSocket(模块 ryze-websocket) ​

Request RealWebsocketRequest

属性类型说明
formatStringURL + 头 + Query + Body
urlString连接 URL
queryString查询参数
bodyString请求体(优先字节转字符串,回退 request.body())
headersMap<String,String>请求头

Response RealWebsocketResponse

属性类型说明
statusint关闭状态码(response.status())
formatStringstatus + Body
bodyString响应文本

Proto(模块 ryze-proto) ​

Request RealProtoRequest

属性类型说明
formatString方法 + URL + 版本 + 头 + Query + Body
urlString请求 URL
methodString方法
queryString查询参数
bodyString请求体
versionString协议版本
headersMap<String,Object>请求头

Response RealProtoResponse

属性类型说明
statusint状态码
formatString版本 + 状态码 + 消息 + 头 + Body
messageString状态消息
bodyString经 ProtoClient.convert 转换后的响应文本
versionString协议版本
headersMap<String,String>响应头

Dubbo(模块 ryze-dubbo) ​

Request RealDubboRequest

属性类型说明
formatString注册中心 + 接口/方法 + 参数类型 + 参数 + 附加参数
addressString注册中心地址(如 zookeeper://127.0.0.1:2181)
interfaceNameString接口全限定类名
methodString方法名
parameterTypesList<String>参数类型列表
attachmentArgsMap<String,String>附加参数
parametersList<Object>调用参数值

Response 默认 DefaultRealResponse。

MongoDB(模块 ryze-mongo) ​

Request MongoRealRequest

属性类型说明
formatString地址 + database + collection + action + Condition/Data JSON
urlString连接地址
databaseString数据库名
collectionString集合名
actionString操作类型(find、insert、update、delete)
conditionMap<String,Object>操作条件
dataObject操作数据(运行时为 Map / List)

Response 默认 DefaultRealResponse。

无自定义 Response 的协议 ​

Redis / JDBC / EMail / RabbitMQ / ActiveMQ / Kafka / Dubbo / Mongo 共 8 个协议响应使用 DefaultRealResponse(status 固定 200);HTTP、WebSocket、MQTT、CoAP、Proto 共 5 个协议有自己的自定义 Response。


💡 读取示例 ​

java
SampleResult sr = (SampleResult) result;

// 基础信息
sr.

getTitle();                        // 用例标题
sr.

getStatus();                       // TestStatus.passed
sr.

getMetadata();                     // 用例 metadata(Map)
sr.

getVariables();                    // 变量增量记录列表

// 请求 / 响应
RealRequest req = sr.getRequest();     // 按协议类型化(强转为对应 Real 类)
RealResponse resp = sr.getResponse();  // 同上
resp.

getStatus();                     // 响应状态码(契约字段)
((RealHTTPRequest)req).

getMethod();  // 协议特有字段取值

// 验证器
for(
AssertionResult a :sr.

getAssertions()){
        a.

getField();    
        a.

getRule();     
        a.

getExpected();
        a.

getActual();   
        a.

getStatus();   // passed / failed / skipped
}

// 提取器
        for(
ExtractorResult e :sr.

getExtractors()){
        e.

getRefName();  
        e.

getValue();  
        e.

isDefaultValue();
}

🔄 序列化说明 ​

  • 仅序列化,不做反序列化还原:Real* 子类无参构造不齐全,结果树为只读快照。
  • 序列化 = getter 驱动:request/response 按 JavaBean getter 输出,字段即上表所列。

Released under the MIT License.