refactor(接口测试): 返回报告内容增加java doc

This commit is contained in:
wxg0103 2024-01-29 10:19:20 +08:00 committed by 刘瑞斌
parent 41c0c2013d
commit 547a64f69c
6 changed files with 206 additions and 43 deletions

View File

@ -10,69 +10,113 @@ import java.util.List;
*/
@Data
public class RequestResult {
// 请求ID
/**
* 请求ID
*/
private String resourceId;
// 步骤请求唯一ID
/**
* 步骤请求唯一ID
*/
private String stepId;
// 线程名称
/**
* 线程名称
*/
private String threadName;
// 步骤名称
/**
* 步骤名称
*/
private String name;
// 请求地址
/**
* 请求地址
*/
private String url;
// 请求大小
/**
* 请求大小
*/
private long requestSize;
// 开始时间
/**
* 请求开始时间
*/
private long startTime;
// 结束时间
/**
* 请求结束时间
*/
private long endTime;
// 失败数量
/**
* 失败数量
*/
private int error;
// 请求头
/**
* 请求头
*/
private String headers;
// cookies
/**
* cookies
*/
private String cookies;
// 请求体
/**
* 请求体
*/
private String body;
// 响应状态
/**
* 响应状态
*/
private String status;
// 请求方法
/**
* 请求方法
*/
private String method;
// 断言总数
/**
* 断言总数
*/
private int assertionTotal = 0;
// 断言通过数
/**
* 断言通过数
*/
private int passAssertionsTotal = 0;
// 子请求结果
/**
* 子请求结果
*/
private List<RequestResult> subRequestResults = new ArrayList<>();
// 响应结果
/**
* 响应结果
*/
private ResponseResult responseResult = new ResponseResult();
/**
* 是否成功
*/
private Boolean isSuccessful;
public void increasePassAssertionCount() {
this.passAssertionsTotal++;
}
// 误报信息
/**
* 误报信息
*/
private String fakeErrorMessage;
// 误报编码名称
/**
* 误报编码名称
*/
private String fakeErrorCode;
}

View File

@ -8,13 +8,28 @@ import lombok.Data;
@Data
public class ResponseAssertionResult {
/**
* 断言名称
*/
private String name;
/**
* 断言内容
*/
private String content;
/**
* 断言脚本
*/
private String script;
/**
* 断言结果
*/
private String message;
/**
* 是否通过
*/
private boolean pass;
}

View File

@ -10,61 +10,100 @@ import java.util.List;
*/
@Data
public class ResponseResult {
// 响应状态
/**
* 响应状态
*/
private String responseCode;
// 响应详细信息
/**
* 响应详细信息
*/
private String responseMessage;
// 总响应时间
/**
* 总响应时间
*/
private long responseTime;
// 从客户端向服务器发送请求到收到响应的时间
/**
* 从客户端向服务器发送请求到收到响应的时间
*/
private long latency;
// 总响应内容大小
/**
* 总响应内容大小
*/
private long responseSize;
// 响应头
/**
* 响应头
*/
private String headers;
// 响应内容
/**
* 响应内容
*/
private String body;
// 响应类型
/**
* 响应类型
*/
private String contentType;
// 过程变量处理信息
/**
* 过程变量处理信息
*/
private String vars;
// 图片内容
/**
* 图片内容
*/
private byte[] imageUrl;
// Socket InitializationSocket 初始化时间
/**
* Socket InitializationSocket 初始化时间
*/
private long socketInitTime = 0;
// DNS LookupDNS 查询时间
/**
* DNS LookupDNS 查询时间
*/
private long dnsLookupTime = 0;
// TCP HandshakeTCP 握手时间
/**
* TCP HandshakeTCP 握手时间
*/
private long tcpHandshakeTime = 0;
//SSL HandshakeSSL 握手时间
/**
* SSL HandshakeSSL 握手时间
*/
private long sslHandshakeTime = 0;
//Transfer Start传输开始时间
/**
* Transfer Start传输开始时间
*/
private long transferStartTime = 0;
//Download下载时间
/**
* Download下载时间
*/
private long downloadTime = 0;
// Body size
/**
* Body size
*/
private long bodySize = 0;
// header size
/**
* Header size
*/
private long headerSize = 0;
// 断言结果
/**
* 断言结果
*/
private final List<ResponseAssertionResult> assertions = new ArrayList<>();
}

View File

@ -7,36 +7,69 @@ import lombok.Data;
@Data
public class ApiReportDetailDTO {
/**
* 报告详情id
*/
@Schema(description = "报告详情id")
private String id;
/**
* 接口报告id
*/
@Schema(description = "接口报告id")
private String reportId;
/**
* 各个步骤请求唯一标识
*/
@Schema(description = "各个步骤请求唯一标识")
private String stepId;
/**
* 结果状态
*/
@Schema(description = "结果状态")
private String status;
/**
* 误报编号/误报状态独有
*/
@Schema(description = "误报编号/误报状态独有")
private String fakeCode;
/**
* 请求名称
*/
@Schema(description = "请求名称")
private String requestName;
/**
* 请求耗时
*/
@Schema(description = "请求耗时")
private Long requestTime;
/**
* 请求响应码
*/
@Schema(description = "请求响应码")
private String code;
/**
* 响应内容大小
*/
@Schema(description = "响应内容大小")
private Long responseSize;
/**
* 脚本标识
*/
@Schema(description = "脚本标识")
private String scriptIdentifier;
/**
* 结果内容详情
*/
@Schema(description = "结果内容详情")
private RequestResult content;

View File

@ -7,36 +7,69 @@ import lombok.Data;
@Data
public class ApiScenarioReportDetailDTO {
/**
* 报告详情id
*/
@Schema(description = "报告详情id")
private String id;
/**
* 接口报告id
*/
@Schema(description = "接口报告id")
private String reportId;
/**
* 各个步骤请求唯一标识
*/
@Schema(description = "各个步骤请求唯一标识")
private String stepId;
/**
* 结果状态
*/
@Schema(description = "结果状态")
private String status;
/**
* 误报编号/误报状态独有
*/
@Schema(description = "误报编号/误报状态独有")
private String fakeCode;
/**
* 请求名称
*/
@Schema(description = "请求名称")
private String requestName;
/**
* 请求耗时
*/
@Schema(description = "请求耗时")
private Long requestTime;
/**
* 请求响应码
*/
@Schema(description = "请求响应码")
private String code;
/**
* 响应内容大小
*/
@Schema(description = "响应内容大小")
private Long responseSize;
/**
* 脚本标识
*/
@Schema(description = "脚本标识")
private String scriptIdentifier;
/**
* 结果内容详情
*/
@Schema(description = "结果内容详情")
private RequestResult content;

View File

@ -4,18 +4,17 @@ import io.metersphere.sdk.exception.MSException;
import io.metersphere.system.domain.Schedule;
import io.metersphere.system.domain.ScheduleExample;
import io.metersphere.system.mapper.ScheduleMapper;
import io.metersphere.system.uid.IDGenerator;
import jakarta.annotation.Resource;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.quartz.JobKey;
import org.quartz.SchedulerException;
import org.quartz.TriggerKey;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
import io.metersphere.system.uid.IDGenerator;
@Transactional(rollbackFor = Exception.class)
public class ScheduleService {
@ -86,7 +85,7 @@ public class ScheduleService {
public void addOrUpdateCronJob(Schedule request, JobKey jobKey, TriggerKey triggerKey, Class clazz) {
Boolean enable = request.getEnable();
String cronExpression = request.getValue();
if (Optional.ofNullable(enable).isPresent() && StringUtils.isNotBlank(cronExpression)) {
if (BooleanUtils.isTrue(enable) && StringUtils.isNotBlank(cronExpression)) {
try {
scheduleManager.addOrUpdateCronJob(jobKey, triggerKey, clazz, cronExpression,
scheduleManager.getDefaultJobDataMap(request, cronExpression, request.getCreateUser()));