feat(测试计划): 提交测试计划以及关联表的model,以及i18n

提交测试计划以及关联表的model,以及i18n
This commit is contained in:
song-tianyang 2023-05-23 16:21:01 +08:00 committed by 建国
parent 7528485190
commit e324a79827
16 changed files with 872 additions and 1213 deletions

View File

@ -0,0 +1,61 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划关联接口用例")
@Table("test_plan_api_case")
@Data
public class TestPlanApiCase implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_api_case.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_api_case.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_api_case.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 50, message = "{test_plan_api_case.api_case_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_api_case.api_case_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "接口用例ID", required = true, allowableValues = "range[1, 50]")
private String apiCaseId;
@ApiModelProperty(name = "环境类型", allowableValues = "range[1, 20]")
private String environmentType;
@ApiModelProperty(name = "所属环境")
private String environment;
@ApiModelProperty(name = "环境组ID", allowableValues = "range[1, 50]")
private String environmentGroupId;
@ApiModelProperty(name = "创建时间", required = true, dataType = "Long")
private Long createTime;
@Size(min = 1, max = 40, message = "{test_plan_api_case.create_user.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_api_case.create_user.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "创建人", required = true, allowableValues = "range[1, 40]")
private String createUser;
@ApiModelProperty(name = "自定义排序间隔5000", required = true, dataType = "Long")
private Long pos;
}

View File

@ -0,0 +1,60 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划关联场景用例")
@Table("test_plan_api_scenario")
@Data
public class TestPlanApiScenario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_api_scenario.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_api_scenario.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_api_scenario.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 255, message = "{test_plan_api_scenario.api_scenario_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_api_scenario.api_scenario_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "场景ID", required = true, allowableValues = "range[1, 255]")
private String apiScenarioId;
@ApiModelProperty(name = "创建时间", required = true, dataType = "Long")
private Long createTime;
@Size(min = 1, max = 100, message = "{test_plan_api_scenario.create_user.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_api_scenario.create_user.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "创建人", required = true, allowableValues = "range[1, 100]")
private String createUser;
@ApiModelProperty(name = "自定义排序间隔5000", required = true, dataType = "Long")
private Long pos;
@ApiModelProperty(name = "环境类型", required = false, allowableValues = "range[1, 20]")
private String environmentType;
@ApiModelProperty(name = "所属环境", required = false, allowableValues = "range[1, ]")
private String environment;
@ApiModelProperty(name = "环境组ID", required = false, allowableValues = "range[1, 50]")
private String environmentGroupId;
}

View File

@ -0,0 +1,44 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划配置")
@Table("test_plan_config")
@Data
public class TestPlanConfig implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_config.test_plan_id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@ApiModelProperty(name = "运行模式", required = true)
private String runModeConfig;
@Size(min = 1, max = 1, message = "{test_plan_config.automatic_status_update.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_config.automatic_status_update.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "是否自定更新功能用例状态", required = true, allowableValues = "range[1, 1]")
private Boolean automaticStatusUpdate;
@Size(min = 1, max = 1, message = "{test_plan_config.repeat_case.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_config.repeat_case.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "是否允许重复添加用例", required = true, allowableValues = "range[1, 1]")
private Boolean repeatCase;
@Size(min = 1, max = 3, message = "{test_plan_config.pass_threshold.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_config.pass_threshold.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划通过阈值", required = true, dataType = "Integer")
private Integer passThreshold;
}

View File

@ -0,0 +1,69 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划执行记录")
@Table("test_plan_execute_record")
@Data
public class TestPlanExecuteRecord implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_execute_record.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "测试计划执行记录ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_execute_record.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_execute_record.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 255, message = "{test_plan_execute_record.name.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_execute_record.name.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "执行记录名称", required = true, allowableValues = "range[1, 255]")
private String name;
@Size(min = 1, max = 50, message = "{test_plan_execute_record.status.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_execute_record.status.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "执行状态", required = true, allowableValues = "range[1, 50]")
private String status;
@ApiModelProperty(name = "触发类型", allowableValues = "range[1, 50]")
private String triggerMode;
@ApiModelProperty(name = "创建人(执行人/触发人)", allowableValues = "range[1, 50]")
private String createUser;
@ApiModelProperty(name = "创建时间(开始时间)", dataType = "Long")
private Long createTime;
@ApiModelProperty(name = "结束时间", dataType = "Long")
private Long endTime;
@ApiModelProperty(name = "用例总数量", dataType = "Integer")
private Integer caseCount;
@ApiModelProperty(name = "执行率", allowableValues = "range[1, 22]")
private Double executeRate;
@ApiModelProperty(name = "通过率", allowableValues = "range[1, 22]")
private Double passRate;
}

View File

@ -0,0 +1,44 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划执行记录详细内容(拆分成下面4张表)")
@Table("test_plan_execute_record_blob")
@Data
public class TestPlanExecuteRecordBlob implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_execute_record_blob.test_plan_execute_record.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "测试计划执行记录ID", required = true, allowableValues = "range[1, 50]")
private String testPlanExecuteRecord;
@ApiModelProperty(name = "执行配置")
private String runConfig;
@ApiModelProperty(name = "接口用例执行信息")
private String apiCases;
@ApiModelProperty(name = "场景执行信息")
private String scenarios;
@ApiModelProperty(name = "性能用例执行信息")
private String loadCases;
@ApiModelProperty(name = "UI用例执行信息")
private String uiCases;
}

View File

@ -0,0 +1,29 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划关注人")
@Table("test_plan_follow")
@Data
public class TestPlanFollow implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_follow.test_plan_id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Id
@NotBlank(message = "{test_plan_follow.user_id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "用户ID", required = true, allowableValues = "range[1, 50]")
private String userId;
}

View File

@ -0,0 +1,49 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划关联功能用例")
@Table("test_plan_function_case")
@Data
public class TestPlanFunctionCase implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_function_case.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_function_case.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_function_case.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 50, message = "{test_plan_function_case.function_case_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_function_case.function_case_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "功能用例ID", required = true, allowableValues = "range[1, 50]")
private String functionCaseId;
@ApiModelProperty(name = "创建时间", required = true, dataType = "Long")
private Long createTime;
@Size(min = 1, max = 50, message = "{test_plan_function_case.create_user.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_function_case.create_user.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "创建人", required = true, allowableValues = "range[1, 50]")
private String createUser;
@ApiModelProperty(name = "自定义排序间隔5000", required = true, dataType = "Long")
private Long pos;
}

View File

@ -0,0 +1,61 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划关联性能测试用例")
@Table("test_plan_load_case")
@Data
public class TestPlanLoadCase implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_load_case.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_load_case.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_load_case.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 50, message = "{test_plan_load_case.load_case_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_load_case.load_case_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "性能用例ID", required = true, allowableValues = "range[1, 50]")
private String loadCaseId;
@ApiModelProperty(name = "创建时间", required = true, dataType = "Long")
private Long createTime;
@Size(min = 1, max = 50, message = "{test_plan_load_case.create_user.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_load_case.create_user.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "创建人", required = true, allowableValues = "range[1, 50]")
private String createUser;
@ApiModelProperty(name = "所用测试资源池ID", allowableValues = "range[1, 50]")
private String testResourcePoolId;
@ApiModelProperty(name = "自定义排序间隔5000", required = true, dataType = "Long")
private Long pos;
@ApiModelProperty(name = "压力配置")
private String loadConfiguration;
@ApiModelProperty(name = "高级配置")
private String advancedConfiguration;
}

View File

@ -0,0 +1,28 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划责任人")
@Table("test_plan_principal")
@Data
public class TestPlanPrincipal implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_principal.test_plan_id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Id
@NotBlank(message = "{test_plan_principal.user_id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "用户ID", required = true, allowableValues = "range[1, 50]")
private String userId;
}

View File

@ -0,0 +1,73 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划报告")
@Table("test_plan_report")
@Data
public class TestPlanReport implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_report.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_report.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_report.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 128, message = "{test_plan_report.name.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_report.name.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "报告名称", required = true, allowableValues = "range[1, 128]")
private String name;
@Size(min = 1, max = 50, message = "{test_plan_report.create_user.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_report.create_user.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "创建人", required = true, allowableValues = "range[1, 50]")
private String createUser;
@ApiModelProperty(name = "创建时间", required = true, dataType = "Long")
private Long createTime;
@ApiModelProperty(name = "修改人", allowableValues = "range[1, 50]")
private String updateUser;
@ApiModelProperty(name = "更新时间", dataType = "Long")
private Long updateTime;
@ApiModelProperty(name = "开始时间", dataType = "Long")
private Long startTime;
@ApiModelProperty(name = "结束时间", dataType = "Long")
private Long endTime;
@ApiModelProperty(name = "用例数量", dataType = "Long")
private Long caseCount;
@ApiModelProperty(name = "执行率", allowableValues = "range[1, 22]")
private Double executeRate;
@ApiModelProperty(name = "通过率", allowableValues = "range[1, 22]")
private Double passRate;
}

View File

@ -0,0 +1,39 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划报告内容")
@Table("test_plan_report_content")
@Data
public class TestPlanReportContent implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_report_content.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_report_content.test_plan_report_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_report_content.test_plan_report_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划报告ID", required = true, allowableValues = "range[1, 50]")
private String testPlanReportId;
@ApiModelProperty(name = "总结", allowableValues = "range[1, 2000]")
private String summary;
@ApiModelProperty(name = "报告内容", dataType = "byte[]")
private byte[] content;
}

View File

@ -0,0 +1,61 @@
package io.metersphere.plan.domain;
import io.metersphere.validation.groups.Created;
import io.metersphere.validation.groups.Updated;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serializable;
@ApiModel(value = "测试计划关联UI场景")
@Table("test_plan_ui_scenario")
@Data
public class TestPlanUiScenario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotBlank(message = "{test_plan_ui_scenario.id.not_blank}", groups = {Updated.class})
@ApiModelProperty(name = "ID", required = true, allowableValues = "range[1, 50]")
private String id;
@Size(min = 1, max = 50, message = "{test_plan_ui_scenario.test_plan_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_ui_scenario.test_plan_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "测试计划ID", required = true, allowableValues = "range[1, 50]")
private String testPlanId;
@Size(min = 1, max = 50, message = "{test_plan_ui_scenario.ui_scenario_id.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_ui_scenario.ui_scenario_id.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "UI场景ID", required = true, allowableValues = "range[1, 50]")
private String uiScenarioId;
@Size(min = 1, max = 50, message = "{test_plan_ui_scenario.create_user.length_range}", groups = {Created.class, Updated.class})
@NotBlank(message = "{test_plan_ui_scenario.create_user.not_blank}", groups = {Created.class})
@ApiModelProperty(name = "创建人", required = true, allowableValues = "range[1, 50]")
private String createUser;
@ApiModelProperty(name = "创建时间", required = true, dataType = "Long")
private Long createTime;
@ApiModelProperty(name = "排序默认值5000", required = true, dataType = "Long")
private Long pos;
@ApiModelProperty(name = "环境类型", allowableValues = "range[1, 20]")
private String environmentType;
@ApiModelProperty(name = "所属环境")
private String environment;
@ApiModelProperty(name = "环境组ID", allowableValues = "range[1, 50]")
private String environmentGroupId;
}

View File

@ -1,74 +1,62 @@
test_case_exist=
before_delete_plan=
test_case_node_level_tip=
test_case_node_level=
test_case_module_not_null=
test_case_create_module_fail=
test_case_import_template_name=
test_case_import_template_sheet=
module_not_null=
user_not_exists=
test_case_already_exists=
parse_data_error=
missing_header_information=
number=
row=
error=
incorrect_format=
test_case_priority_validate=
test_case_method_validate=
test_case_name=
test_case_module=
test_case_type=
test_case_maintainer=
test_case_priority=
test_case_method=
test_case_prerequisite=
test_case_remark=
test_case_step_desc=
test_case_step_result=
test_case=
user=
user_import_template_name=
user_import_template_sheet=
user_import_format_wrong=
user_import_id_is_repeat=
user_import_email_is_repeat=
user_import_password_format_wrong=
user_import_phone_format_wrong=
user_import_email_format_wrong=
user_import_organization_not_fond=
user_import_workspace_not_fond=
org_admin=
org_member=
test_manager=
tester=
read_only_user=
module=
preconditions_optional=
remark_optional=
do_not_modify_header_order=
module_created_automatically=
options=
options_yes=
options_no=
required=
password_format_is_incorrect=
please_input_workspace_member=
test_case_report_template_repeat=
custom_field_already=
id_required=
id_repeat_in_table=
template_already=
expect_name_exists=
id_not_rightful=
mock_warning=
invalid_parameter=
workspace_template_settings_issue=
zentao_test_type_error=
issue_jira_info_error=
case_status_not_exist=
jira_auth_error=
# issue template copy
target_issue_template_not_checked=
source_issue_template_is_empty=
test_plan_report.id.not_blank=
test_plan_report.test_plan_id.length_range=
test_plan_report.test_plan_id.not_blank=
test_plan_report.name.length_range=
test_plan_report.name.not_blank=
test_plan_report.create_user.length_range=
test_plan_report.create_user.not_blank=
test_plan_ui_scenario.id.not_blank=
test_plan_ui_scenario.test_plan_id.length_range=
test_plan_ui_scenario.test_plan_id.not_blank=
test_plan_ui_scenario.ui_scenario_id.length_range=
test_plan_ui_scenario.ui_scenario_id.not_blank=
test_plan_ui_scenario.create_user.length_range=
test_plan_ui_scenario.create_user.not_blank=
test_plan_function_case.id.not_blank=
test_plan_function_case.plan_id.length_range=
test_plan_function_case.plan_id.not_blank=
test_plan_function_case.function_case_id.length_range=
test_plan_function_case.function_case_id.not_blank=
test_plan_function_case.create_user.length_range=
test_plan_function_case.create_user.not_blank=
test_plan_api_scenario.id.not_blank=
test_plan_api_scenario.test_plan_id.length_range=
test_plan_api_scenario.test_plan_id.not_blank=
test_plan_api_scenario.create_user.length_range=
test_plan_api_scenario.create_user.not_blank=
test_plan_follow.test_plan_id.not_blank=
test_plan_follow.user_id.not_blank=
test_plan_api_case.id.not_blank=
test_plan_api_case.test_plan_id.length_range=
test_plan_api_case.test_plan_id.not_blank=
test_plan_api_case.api_case_id.length_range=
test_plan_api_case.api_case_id.not_blank=
test_plan_api_case.create_user.length_range=
test_plan_api_case.create_user.not_blank=
test_plan_config.test_plan_id.not_blank=
test_plan_config.automatic_status_update.length_range=
test_plan_config.automatic_status_update.not_blank=
test_plan_config.repeat_case.length_range=
test_plan_config.repeat_case.not_blank=
test_plan_config.pass_threshold.length_range=
test_plan_config.pass_threshold.not_blank=
test_plan_load_case.id.not_blank=
test_plan_load_case.test_plan_id.length_range=
test_plan_load_case.test_plan_id.not_blank=
test_plan_load_case.load_case_id.length_range=
test_plan_load_case.load_case_id.not_blank=
test_plan_load_case.create_user.length_range=
test_plan_load_case.create_user.not_blank=
test_plan_execute_record_blob.test_plan_execute_record.not_blank=
test_plan_execute_record.id.not_blank=
test_plan_execute_record.test_plan_id.length_range=
test_plan_execute_record.test_plan_id.not_blank=
test_plan_execute_record.name.length_range=
test_plan_execute_record.name.not_blank=
test_plan_execute_record.status.length_range=
test_plan_execute_record.status.not_blank=
test_plan_principal.test_plan_id.not_blank=
test_plan_principal.user_id.not_blank=
test_plan_report_content.id.not_blank=
test_plan_report_content.test_plan_report_id.length_range=
test_plan_report_content.test_plan_report_id.not_blank=

View File

@ -1,382 +1,64 @@
#commons
error_lang_invalid=Invalid language parameter
file_cannot_be_null=File cannot be empty!
cannot_be_null=\tCannot be empty
number=Number
row=row
error=error
connection_failed=Connection failed
connection_timeout=Connection timeout
delete_fail=Delete fail
start_engine_fail=Start fail
upload_fail=Upload fail
invalid_parameter=Invalid parameter!
name_already_exists=Name already exists
resource_not_exist=The resource does not exist or has been deleted
upload_file_fail_get_file_path_fail=Failed to upload the file, failed to get the file path
#user related
user_email_already_exists=User email already exists
user_id_is_null=User ID cannot be null
user_name_is_null=User name cannot be null
user_email_is_null=User email cannot be null
password_is_null=Password cannot be null
user_id_already_exists=User ID already exists
password_modification_failed=The old password is wrong. Please re-enter it
cannot_delete_current_user=Cannot delete the user currently logged in
user_already_exists=The user already exists in the current member list
cannot_remove_current=Unable to remove the currently logged in user
password_is_incorrect=Incorrect password or username
user_not_exist=user does not exist
user_has_been_disabled=the user has been disabled.
excessive_attempts=Excessive attempts
user_locked=the user has been locked.
user_expires=user expires.
not_authorized=not authorized.
login_fail=Login fail
user_apikey_limit=Can have up to 5 api keys
please_logout_current_user=Please logout current user first
#load test
edit_load_test_not_found=Cannot edit test, test not found=
run_load_test_not_found=Cannot run test, test not found=
run_load_test_file_not_found=Unable to run test, unable to get test file meta information, test ID=
run_load_test_file_content_not_found=Cannot run test, cannot get test file content, test ID=
run_load_test_file_init_error=Failed to run the test, please go to [Settings-System-System Parameter Setting] to check the current site configuration. For details, see https://metersphere.io/docs/faq/load_ test/#url
load_test_is_running=Load test is running, please wait.
load_test_kafka_invalid=Kafka is not available, please check the configuration
cannot_edit_load_test_running=Cannot modify the running test
test_not_found=Test cannot be found:
test_not_running=Test is not running
load_test_already_exists=Duplicate load test name
load_test_name_length=The length of the test name exceeds the limit
no_nodes_message=No node message
duplicate_node_ip=Duplicate IPs
duplicate_node_port=Duplicate Ports
duplicate_node_ip_port=Duplicate IPs & Ports
max_thread_insufficient=The number of concurrent users exceeds
related_case_del_fail_prefix=Connected to
related_case_del_fail_suffix=TestCase, please disassociate first
jmx_content_valid=JMX content is invalid
container_delete_fail=The container failed to stop, please try again
load_test_report_file_not_exist=There is no JTL file in the current report, please wait or execute it again to get it
#workspace
workspace_name_is_null=Workspace name cannot be null
workspace_name_already_exists=The workspace name already exists
workspace_does_not_belong_to_user=The current workspace does not belong to the current user
workspace_not_exists=Workspace is not exists
#test resource pool
test_resource_pool_id_is_null=Test Resource Pool ID cannot be null
test_resource_pool_name_is_null=Test Resource Pool name cannot be null
test_resource_pool_name_already_exists=The test resource pool name already exists
load_test=Load Test
test_resource_pool_is_use=This resource pool is in use and cannot be deleted
only_one_k8s=Only one K8S can be added
test_resource_pool_not_exists=Test resource pool not exists
test_resource_pool_invalid=Test resource pool invalid
#project
project_name_is_null=Project name cannot be null
project_name_already_exists=The project name already exists
project_file_already_exists=The file already exists
project_file_in_use=use this file and cannot be deleted.
#organization
organization_name_is_null=organization name cannot be null
organization_name_already_exists=The organization name already exists
organization_does_not_belong_to_user=The current organization does not belong to the current user
organization_id_is_null=Organization ID cannot be null
#api
api_load_script_error=Load script error
illegal_xml_format=illegal XML format
api_report_is_null="Report is null, can't update"
api_test_environment_already_exists="Api test environment already exists"
api_test=API Test
#test case
test_case_node_level=level
test_case_node_level_tip=The node tree maximum depth is
test_case_module_not_null=The owned module cannot be empty
test_case_create_module_fail=Failed to create module
test_case_import_template_name=Test_case_templates
test_case_import_template_sheet=Template
module_not_null=The module must not be blank
user_not_exists=The user in this project is not exists
test_case_already_exists=The test case in this project is exists
parse_data_error=Parse data error
missing_header_information=Missing header information
test_case_exist=A test case already exists under this project:
node_deep_limit=The node depth does not exceed 8 layers!
before_delete_plan=There is an associated test case under this plan, please unlink it first!
incorrect_format=\tincorrect format
test_case_step_model_validate=\tmust be TEXT, STEP
test_case_priority_validate=\tmust be P0, P1, P2, P3
test_case_method_validate=\tmust be manual, auto
test_case_name=Name
test_case_type=Type
test_case_maintainer=Maintainer
test_case_priority=Priority
test_case_method=method
test_case_prerequisite=Prerequisite
test_case_remark=Remark
test_case_step_desc=Step description
test_case_step_result=Step result
test_case_module=Module
test_case=Case
user=User
user_import_template_name=User import templates
user_import_template_sheet=templates
user_import_format_wrong=input error
user_import_id_is_repeat=Id repeat
user_import_email_is_repeat=E-mail repeat
user_import_password_format_wrong=Wrong password format
user_import_phone_format_wrong=Wrong phone format
user_import_email_format_wrong=Wrong email format
user_import_organization_not_fond=Organization is not found
user_import_workspace_not_fond=Workspace is not found
org_admin=Organization manager
org_member=Organization member
test_manager=Test manager
tester=Tester
read_only_user=Read-only user
module=Module
num_needed_modify_testcase=ID is needed when modifying testcase
num_needless_create_testcase=ID is needless when creating testcase
tag_tip_pattern=Labels should be separated by semicolons or commas
preconditions_optional=Preconditions optional
remark_optional=Remark optional
do_not_modify_header_order=Do not modify the header order
module_created_automatically=If there is no such module, will be created automatically
options=options
options_yes=Yes
options_no=No
required=Required
password_format_is_incorrect=Valid password: 8-30 digits, English upper and lower case letters + numbers + special characters (optional)
please_input_project_member=Please input project merber's number
test_case_report_template_repeat=The workspace has the same name template
plan_name_already_exists=Test plan name already exists
test_case_already_exists_excel=There are duplicate test cases in the import file
test_case_module_already_exists=The module name already exists at the same level
api_test_name_already_exists=Test name already exists
functional_method_tip=Functional test not support auto method
custom_num_is_exist=Use case custom ID already exists
custom_num_is_not_exist=Use case custom ID not exists
id_required=ID required
id_repeat_in_table=ID is repeat in table
step_model_tip=Step description fill in STEP, text description please fill in TEXT (not required)
case_status_not_exist=The use case status must be Prepare, Underway way and Completed
issue_project_not_exist=ID does not exist or other errors
tapd_project_not_exist=The associated TAPD item ID does not exist
zentao_get_project_builds_fail=Get Affecting Version Errors
zentao_project_id_not_exist=The associated Zen Tao ID does not exist or other errors
#ldap
ldap_url_is_null=LDAP address is empty
ldap_dn_is_null=LDAP binding DN is empty
ldap_ou_is_null=LDAP parameter OU is empty
ldap_password_is_null=LDAP password is empty
ldap_connect_fail=Connection LDAP failed
ldap_connect_fail_user=Connection LDAP failed, wrong DN or password bound
ldap_user_filter_is_null=LDAP user filter is empty
ldap_user_mapping_is_null=LDAP user mapping is empty
authentication_failed=User authentication failed,wrong user name or password
user_not_found_or_not_unique=User does not exist or is not unique
find_more_user=Multiple users found
ldap_authentication_not_enabled=LDAP authentication is not enabled
login_fail_email_null=Login failed, user mailbox is empty
login_fail_ou_error=Login failed, please check the user OU
login_fail_filter_error=Login failed, please check the user filter
check_ldap_mapping=Check LDAP attribute mapping
ldap_mapping_value_null=LDAP user attribute mapping field is empty
oauth_mapping_config_error=OAuth2 attribute mapping misconfiguration
oauth_mapping_value_null=OAuth2 user attribute mapping field is empty
#quota
quota_project_excess_ws_api=The total number of interface tests for a project cannot exceed the workspace quota
quota_project_excess_ws_performance=The total number of performance tests for a project cannot exceed the workspace quota
quota_project_excess_ws_max_threads=The maximum concurrent number of projects cannot exceed the quota of the workspace
quota_project_excess_ws_max_duration=The stress test duration of the project cannot exceed the workspace quota
quota_project_excess_ws_resource_pool=The resource pool of the project cannot exceed the scope of the resource pool of the workspace
quota_project_excess_ws_vum_total=The sum of the total number of vums of the project cannot exceed the workspace quota
quota_vum_used_gt_vum_total=The total number of vum cannot be less than the number of consumed vum
quota_api_excess_workspace=The number of interface tests exceeds the workspace quota
quota_api_excess_project=The number of interface tests exceeds the project limit
quota_performance_excess_workspace=The number of performance tests exceeds the workspace quota
quota_performance_excess_project=The number of performance tests exceeds the project limit
quota_max_threads_excess_workspace=The maximum number of concurrent threads exceeds the workspace quota
quota_max_threads_excess_project=The maximum concurrent number exceeds the project limit
quota_duration_excess_workspace=The stress test duration exceeds the work space quota
quota_duration_excess_project=The stress test time exceeds the project limit
quota_member_excess_workspace=The number of members exceeds the workspace quota
quota_member_excess_project=The number of members exceeds the project quota
quota_project_excess_project=Number of projects exceeds workspace quota
quota_vum_used_excess_workspace=The amount of vum consumed exceeds the workspace quota
quota_vum_used_excess_project=The amount of vum consumed exceeds the project quota
import_xmind_count_error=The number of use cases imported into the mind map cannot exceed 800
import_xmind_not_found=Test case not found
license_valid_license_error=Authorization authentication failed
test_review_task_notice=Test review task notice
swagger_url_scheduled_import_notification=SwaggerUrl Scheduled import notification
test_track.length_less_than=The title is too long, the length must be less than
# check owner
check_owner_project=The current user does not have permission to operate this project
check_owner_test=The current user does not have permission to operate this test
check_owner_case=The current user does not have permission to operate this use case
check_owner_plan=The current user does not have permission to operate this plan
check_owner_review=The current user does not have permission to operate this review
check_owner_comment=The current user does not have permission to manipulate this comment
check_owner_workspace=The current user does not have permission to operate this workspace
upload_content_is_null=Imported content is empty
test_plan_notification=Test plan notification
task_defect_notification=Task defect notification
task_notification_=Timing task result notification
api_definition_url_not_repeating=The interface request address already exists
api_definition_name_not_repeating=The same name-url combination already exists
task_notification_jenkins=Jenkins Task notification
task_notification=Result notification
message_task_already_exists=Task recipient already exists
#automation
automation_name_already_exists=the scenario already exists in the module of the same project
automation_exec_info=There are no test steps to execute
delete_check_reference_by=be referenced by Scenario
not_execute=Not execute
execute_not_pass=Not pass
execute_pass=Pass
import_fail_custom_num_exists=import fail, custom num is exists
#authsource
authsource_name_already_exists=Authentication source name already exists
authsource_name_is_null=Authentication source name cannot be empty
authsource_configuration_is_null=Authentication source configuration cannot be empty
mobile_phone_number_cannot_be_empty=When the receiving mode is pin and enterprise wechat: the user's mobile phone number cannot be empty
custom_field_already=A feild already exists under this workspace:
template_already=A template already exists under this workspace:
expect_name_exists=Expect name is exists
ssl_password_error=The authentication password is wrong, please re-enter the password
ssl_file_error=Failed to load the certification file, please check the certification file
#log
api_definition=Api definition
api_definition_case=Api definition case
api_automation_schedule=Api automation schedule
api_automation=Api automation
api_automation_report=Test Report
track_test_case=Test case
track_test_case_review=Case review
track_test_plan=Test plan
track_test_plan_schedule=Test plan schedule
track_bug=Defect management
track_report=Report
performance_test=Performance test
performance_test_report=Performance test report
system_user=System user
system_organization=System organization
system_workspace=workspace
system_test_resource=System test resource
system_parameter_setting=System parameter setting
system_quota_management=System Quota management
system_authorization_management=System authorization management
organization_member=Organization member
organization_workspace=Organization workspace
project_project_member=Project member
workspace_service_integration=Workspace service integration
workspace_message_settings=Workspace message settings
workspace_member=Workspace member
workspace_template_settings_field=Workspace template settings field
workspace_template_settings_case=Workspace template settings case
workspace_template_settings_issue=Workspace template settings issue
project_project_manager=Project project manager
project_project_jar=Project project jar
project_environment_setting=Project environment setting
project_file_management=Project file management
personal_information_personal_settings=Personal information personal settings
personal_information_apikeys=Personal information API Keys
auth_title=Auth
group_permission=Group
test_case_status_prepare=Prepare
test_case_status_again=Again
test_case_status_running=Running
test_case_status_finished=Finished
test_case_status_error=Error
test_case_status_success=Success
test_case_status_trash=Trash
test_case_status_saved=Saved
connection_expired=The connection has expired, please get it again
# track home
api_case=Api
performance_case=Performance
scenario_case=Scenario
scenario_name_is_null=Scenario name cannot be empty
create_user=Create user
test_case_status=Case status
id_not_rightful=ID is not rightful
project_reference_multiple_plateform=Projects point to multiple third-party platforms
# mock
mock_warning=No matching Mock expectation was found
zentao_test_type_error=invalid Zentao request
#项目报告
enterprise_test_report=Enterprise report
count=Count
cannot_find_project=Cannot find project
project_repeatable_is_false=Url repeatable not open
#环境组
null_environment_group_name=Environment group name is null
environment_group_name=Environment group name
environment_group_exist=already exists
environment_group_has_duplicate_project=Environment group has duplicate project
#误报库
error_report_library=Error report
issue_jira_info_error=Check the service integration information or Jira project ID
error_code_is_unique=Error code is not unique
no_version_exists=version not exists
jira_auth_error=Account name or password (Token) is wrong
jira_auth_url_error=The test connection failed, please check whether the Jira address is correct
#ui 指令校驗
param_error=Param Error
is_null=can't be null
url_is_null=URL can't be null
frame_index_is_null=frame index can't be null
element_is_null=element can't be null
locator_is_null=locator can't be null
coord=coord
input_content=input
subitem_type=subitem type
subitem=subitem
varname=variable
varname_or_value=variable or value
attributeName=attribute name
webtitle_varname=title varname
webhandle_varname=handle varname
cant_be_negative=can't be negative
expression=expression
times=times
command=command
extract_type=extract type
cmdValidation=validation
cmdValidateValue=validate value
cmdValidateText=validate text
cmdValidateDropdown=validate dropdown
cmdValidateElement=validate element
cmdValidateTitle=validate title
cmdOpen=open
cmdSelectWindow=select window
cmdSetWindowSize=set window size
cmdSelectFrame=select frame
cmdDialog=dialog operation
cmdDropdownBox=dropdown
submit=submit
cmdSetItem=set item
cmdWaitElement=wait element
cmdInput=input
cmdMouseClick=click
cmdMouseMove=mouse move
cmdMouseDrag=mouse drag
cmdTimes=times
cmdForEach=ForEach
cmdWhile=While
cmdIf=If
cmdElse=Else
cmdElseIf=ElseIf
close=close
cmdExtraction=extracion
cmdExtractWindow=window extraction
cmdExtractElement=element extraction
tcp_mock_not_unique=This tcp port is be used
no_tcp_mock_port=No idle tcp port, please contact administrators.
name_already_exists_in_module=Name already exists in same module
repository_module_already_exists=The repository name already exists at the same project
can_not_move_to_repository_node=Can not move to repository node
# issue template copy
target_issue_template_not_checked=Cannot copy, target project not checked
source_issue_template_is_empty=Copy error, source project is empty
test_plan_report.id.not_blank=Test plan report id cannot be empty
test_plan_report.test_plan_id.length_range=Test plan id length too long
test_plan_report.test_plan_id.not_blank=Test plan id cannot be empty
test_plan_report.name.length_range=Test plan report name length too long
test_plan_report.name.not_blank=Test plan report name cannot be empty
test_plan_report.create_user.length_range=Test plan report create user length too long
test_plan_report.create_user.not_blank=Test plan report create user cannot be empty
test_plan_ui_scenario.id.not_blank=Test plan ui scenario id cannot be empty
test_plan_ui_scenario.test_plan_id.length_range=Test plan ui scenario test_plan_id length too long
test_plan_ui_scenario.test_plan_id.not_blank=Test plan ui scenario test_plan_id cannot be empty
test_plan_ui_scenario.ui_scenario_id.length_range=Test plan ui scenario ui_scenario_id length too long
test_plan_ui_scenario.ui_scenario_id.not_blank= Test plan ui scenario ui_scenario_id cannot be empty
test_plan_ui_scenario.create_user.length_range=Test plan ui scenario create user length too long
test_plan_ui_scenario.create_user.not_blank=Test plan ui scenario create user cannot be empty
test_plan_function_case.id.not_blank=Test plan function case id cannot be empty
test_plan_function_case.test_plan_id.length_range=Test plan function case test_plan_id length too long
test_plan_function_case.test_plan_id.not_blank=Test plan function case test_plan_id cannot be empty
test_plan_function_case.function_case_id.length_range=Test plan function case function_case_id length too long
test_plan_function_case.function_case_id.not_blank=Test plan function case function_case_id cannot be empty
test_plan_function_case.create_user.length_range=Test plan function case create user length too long
test_plan_function_case.create_user.not_blank=Test plan function case create user cannot be empty
test_plan_api_scenario.id.not_blank=Test plan api scenario id cannot be empty
test_plan_api_scenario.test_plan_id.length_range=Test plan api scenario test_plan_id length too long
test_plan_api_scenario.test_plan_id.not_blank=Test plan api scenario test_plan_id cannot be empty
test_plan_api_scenario.api_scenario_id.length_range=Test plan api scenario api_scenario_id length too long
test_plan_api_scenario.api_scenario_id.not_blank=Test plan api scenario api_scenario_id cannot be empty
test_plan_api_scenario.create_user.length_range=Test plan api scenario create user length too long
test_plan_api_scenario.create_user.not_blank=Test plan api scenario create user cannot be empty
test_plan_follow.test_plan_id.not_blank=Test plan follow test plan id cannot be empty
test_plan_follow.user_id.not_blank=Test plan follow user id cannot be empty
test_plan_api_case.id.not_blank=Test plan api case id cannot be empty
test_plan_api_case.test_plan_id.length_range=Test plan api case test_plan_id length too long
test_plan_api_case.test_plan_id.not_blank=Test plan api case test_plan_id cannot be empty
test_plan_api_case.api_case_id.length_range=Test plan api case api_case_id length too long
test_plan_api_case.api_case_id.not_blank=Test plan api case api_case_id cannot be empty
test_plan_api_case.create_user.length_range=Test plan api case create user length too long
test_plan_api_case.create_user.not_blank=Test plan api case create user cannot be empty
test_plan_config.test_plan_id.not_blank=Test plan config test plan id cannot be empty
test_plan_config.automatic_status_update.length_range=Test plan config automatic status update length too long
test_plan_config.automatic_status_update.not_blank=Test plan config automatic status update cannot be empty
test_plan_config.repeat_case.length_range=Test plan config repeat case length too long
test_plan_config.repeat_case.not_blank=Test plan config repeat case cannot be empty
test_plan_config.pass_threshold.length_range=Test plan config pass threshold length too long
test_plan_config.pass_threshold.not_blank=Test plan config pass threshold cannot be empty
test_plan_load_case.id.not_blank=Test plan load case id cannot be empty
test_plan_load_case.test_plan_id.length_range=Test plan load case test_plan_id length too long
test_plan_load_case.test_plan_id.not_blank=Test plan load case test_plan_id cannot be empty
test_plan_load_case.load_case_id.length_range=Test plan load case load_case_id length too long
test_plan_load_case.load_case_id.not_blank=Test plan load case load_case_id cannot be empty
test_plan_load_case.create_user.length_range=Test plan load case create user length too long
test_plan_load_case.create_user.not_blank=Test plan load case create user cannot be empty
test_plan_execute_record_blob.test_plan_execute_record.not_blank=Test plan execute record blob test plan execute record cannot be empty
test_plan_execute_record.id.not_blank=Test plan execute record id cannot be empty
test_plan_execute_record.test_plan_id.length_range=Test plan execute record test plan id length too long
test_plan_execute_record.test_plan_id.not_blank=Test plan execute record test plan id cannot be empty
test_plan_execute_record.name.length_range=Test plan execute record name length too long
test_plan_execute_record.name.not_blank=Test plan execute record name cannot be empty
test_plan_execute_record.status.length_range=Test plan execute record status length too long
test_plan_execute_record.status.not_blank=Test plan execute record status cannot be empty
test_plan_principal.test_plan_id.not_blank=Test plan principal test plan id cannot be empty
test_plan_principal.user_id.not_blank=Test plan principal user id cannot be empty
test_plan_report_content.id.not_blank=Test plan report content id cannot be empty
test_plan_report_content.test_plan_report_id.length_range=Test plan report content test plan report id length too long
test_plan_report_content.test_plan_report_id.not_blank=Test plan report content test plan report id cannot be empty

View File

@ -1,379 +1,64 @@
#commons
error_lang_invalid=语言参数错误
file_cannot_be_null=文件不能为空!
cannot_be_null=不能为空
number=
row=
error=出错
delete_fail=删除失败
start_engine_fail=启动失败
upload_fail=文件上传失败
invalid_parameter=非法的参数
name_already_exists=该名称已经存在
resource_not_exist=资源不存在或已删除
upload_file_fail_get_file_path_fail=文件上传失败,获取文件上传路径为空
#user related
user_email_already_exists=用户邮箱已存在
user_id_is_null=用户ID不能为空
user_name_is_null=用户名不能为空
user_email_is_null=用户邮箱不能为空
password_is_null=密码不能为空
user_id_already_exists=用户id已存在
password_modification_failed=旧密码输入错误,请重新输入
cannot_delete_current_user=无法删除当前登录用户
connection_failed=连接失败
connection_timeout=连接超时
user_already_exists=该用户已存在于当前成员列表中
cannot_remove_current=无法移除当前登录用户
login_fail=登录失败
password_is_incorrect=用户名或密码不正确
user_not_exist=用户不存在:
user_has_been_disabled=用户已被禁用
excessive_attempts=操作频繁
user_locked=用户被锁定
user_expires=用户过期
not_authorized=未经授权
user_apikey_limit=最多能有5个Api key
please_logout_current_user=请先登出当前用户
#load test
edit_load_test_not_found=无法编辑测试,未找到测试:
run_load_test_not_found=无法运行测试,未找到测试:
run_load_test_file_not_found=无法运行测试无法获取测试文件元信息测试ID
run_load_test_file_content_not_found=无法运行测试无法获取测试文件内容测试ID
run_load_test_file_init_error=无法运行测试,请前往 [系统设置-系统-系统参数设置] 检查当前站点配置,详情见 https://metersphere.io/docs/v2.x/faq/load_test/#url
load_test_is_running=测试正在运行, 请等待
load_test_kafka_invalid=Kafka 不可用,请检查配置
cannot_edit_load_test_running=不能修改正在运行的测试
test_not_found=测试不存在:
test_not_running=测试未运行
load_test_already_exists=测试名称不能重复
load_test_name_length=测试名称长度超过限制
no_nodes_message=没有节点信息
duplicate_node_ip=节点 IP 重复
duplicate_node_port=节点 Port 重复
duplicate_node_ip_port=节点 IP、Port 重复
max_thread_insufficient=并发用户数超额
related_case_del_fail_prefix=已关联到
related_case_del_fail_suffix=测试用例,请先解除关联
jmx_content_valid=JMX 内容无效,请检查
container_delete_fail=容器由于网络原因停止失败,请重试
load_test_report_file_not_exist=当前报告没有JTL文件请等待或重新执行以便获取
#workspace
workspace_name_is_null=工作空间名不能为空
workspace_name_already_exists=工作空间名已存在
workspace_does_not_belong_to_user=当前工作空间不属于当前用户
workspace_not_exists=工作空间不存在
#test resource pool
test_resource_pool_id_is_null=资源池ID不能为空
test_resource_pool_name_is_null=资源池名称不能为空
test_resource_pool_name_already_exists=资源池名称已存在
load_test=性能测试
test_resource_pool_is_use=正在使用此资源池,无法删除
only_one_k8s=只能添加一个 K8S
test_resource_pool_not_exists=测试资源池不存在
test_resource_pool_invalid=当前测试使用的资源池处于禁用状态
#project
project_name_is_null=项目名称不能为空
project_name_already_exists=项目名称已存在
project_file_already_exists=项目下该文件已经存在
project_file_in_use=占用文件,无法删除。
#organization
organization_name_is_null=组织名不能为空
organization_name_already_exists=组织名已存在
organization_does_not_belong_to_user=当前组织不属于当前用户
organization_id_is_null=组织 ID 不能为空
#api
api_load_script_error=读取脚本失败
illegal_xml_format=不合法的 XML 格式
api_report_is_null="测试报告是未生成,无法更新"
api_test_environment_already_exists="已存在该名称的环境配置"
api_test=接口测试
#test case
test_case_node_level=
test_case_node_level_tip=模块树最大深度为
test_case_module_not_null=所属模块不能为空
test_case_create_module_fail=创建模块失败
test_case_import_template_name=测试用例模版
test_case_import_template_sheet=模版
module_not_null=所属模块不能为空格
user_not_exists=该项目下无该用户
test_case_already_exists=该项目下已存在该测试用例
parse_data_error=解析数据出错
missing_header_information=缺少头部信息
test_case_exist=该项目下已存在用例:
node_deep_limit=节点深度不超过8层
before_delete_plan=该计划下存在关联测试用例,请先取消关联!
incorrect_format=格式错误
test_case_step_model_validate=必须为TEXT、STEP
test_case_priority_validate=必须为P0、P1、P2、P3
test_case_method_validate=必须为manual、auto
test_case_name=用例名称
test_case_type=用例类型
test_case_maintainer=维护人
test_case_priority=用例等级
test_case_method=测试方式
test_case_prerequisite=前置条件
test_case_remark=备注
test_case_step_desc=步骤描述
test_case_step_result=预期结果
test_case_module=所属模块
test_case=功能用例
user=用户
user_import_template_name=用户导入模板
user_import_template_sheet=模版
user_import_format_wrong=格式错误
user_import_id_is_repeat=ID重复
user_import_email_is_repeat=E-mail重复
user_import_password_format_wrong=密码格式错误
user_import_phone_format_wrong=手机号码格式错误
user_import_email_format_wrong=电子邮箱格式错误
user_import_organization_not_fond=组织未找到
user_import_workspace_not_fond=工作空间未找到
org_admin=组织管理员
org_member=组织成员
test_manager=测试经理
tester=测试成员
read_only_user=只读用户
module=模块
num_needed_modify_testcase=修改用例时ID必填
num_needless_create_testcase=创建用例时无需ID
tag_tip_pattern=标签之间以分号或者逗号隔开
preconditions_optional=前置条件选填
remark_optional=备注选填
do_not_modify_header_order=请勿修改表头顺序
module_created_automatically=若无该模块将自动创建
options=选项
options_yes=
options_no=
required=必填
password_format_is_incorrect=有效密码8-30位英文大小写字母+数字+特殊字符(可选)
please_input_project_member=请填写该项目下的相关人员ID
test_case_report_template_repeat=同一工作空间下不能存在同名模版
plan_name_already_exists=测试计划名称已存在
test_case_already_exists_excel=文件中存在多条相同用例
test_case_module_already_exists=同层级下已存在该模块名称
api_test_name_already_exists=测试名称已经存在
functional_method_tip=功能测试不支持自动方式
custom_num_is_exist=用例自定义ID已存在
custom_num_is_not_exist=用例自定义ID不存在
id_required=ID必填
id_repeat_in_table=表格内ID重复
step_model_tip=步骤描述填写 STEP,文本描述请填写 TEXT (非必填)
case_status_not_exist=用例状态必须为未开始(Prepare)、进行中(Underway)、已完成(Completed)
issue_project_not_exist=ID不存在或其它错误
tapd_project_not_exist=关联的TAPD项目ID不存在
zentao_get_project_builds_fail=获取影响版本错误
zentao_project_id_not_exist=关联的禅道ID不存在或其它错误
#ldap
ldap_url_is_null=LDAP地址为空
ldap_dn_is_null=LDAP绑定DN为空
ldap_ou_is_null=LDAP参数OU为空
ldap_password_is_null=LDAP密码为空
ldap_connect_fail=连接LDAP失败
ldap_connect_fail_user=连接LDAP失败绑定的DN或密码错误
ldap_user_filter_is_null=LDAP用户过滤器为空
ldap_user_mapping_is_null=LDAP用户属性映射为空
authentication_failed=用户认证失败,用户名或密码错误
user_not_found_or_not_unique=用户不存在或者不唯一
find_more_user=查找到多个用户
ldap_authentication_not_enabled=LDAP认证未启用
login_fail_email_null=登录失败,用户邮箱为空
login_fail_ou_error=登录失败请检查用户OU
login_fail_filter_error=登录失败,请检查用户过滤器
check_ldap_mapping=检查LDAP属性映射
ldap_mapping_value_null=LDAP用户属性映射字段为空值
oauth_mapping_config_error=OAuth2属性映射配置错误
oauth_mapping_value_null=OAuth2用户属性映射字段为空值
#quota
quota_project_excess_ws_api=项目的接口测试数量总和不能超过工作空间的配额
quota_project_excess_ws_performance=项目的性能测试数量总和不能超过工作空间的配额
quota_project_excess_ws_max_threads=项目的最大并发数不能超过工作空间的配额
quota_project_excess_ws_max_duration=项目的压测时长不能超过工作空间的配额
quota_project_excess_ws_resource_pool=项目的资源池不能超过工作空间的资源池范围
quota_project_excess_ws_vum_total=项目的总vum数量总和不能超过工作空间配额
quota_vum_used_gt_vum_total=总vum数量不能小于已消耗的vum数量
quota_api_excess_workspace=接口测试数量超过工作空间限额
quota_api_excess_project=接口测试数量超过项目限额
quota_performance_excess_workspace=性能测试数量超过工作空间限额
quota_performance_excess_project=性能测试数量超过项目限额
quota_max_threads_excess_workspace=最大并发数超过工作空间限额
quota_max_threads_excess_project=最大并发数超过项目限额
quota_duration_excess_workspace=压测时长超过工作空间限额
quota_duration_excess_project=压测时长超过项目限额
quota_member_excess_workspace=成员数超过工作空间配额
quota_member_excess_project=成员数超过项目配额
quota_project_excess_project=项目数超过工作空间配额
quota_vum_used_excess_workspace=消耗的vum数量超过工作空间配额
quota_vum_used_excess_project=消耗的vum数量超过项目配额
import_xmind_count_error=思维导图导入用例数量不能超过 800 条
license_valid_license_error=授权认证失败
import_xmind_not_found=未找到测试用例
test_review_task_notice=测试评审任务通知
swagger_url_scheduled_import_notification=swagger_url定时导入通知
test_track.length_less_than=标题过长,字数必须小于
# check owner
check_owner_project=当前用户没有操作此项目的权限
check_owner_test=当前用户没有操作此测试的权限
check_owner_case=当前用户没有操作此用例的权限
check_owner_plan=当前用户没有操作此计划的权限
check_owner_review=当前用户没有操作此评审的权限
check_owner_comment=当前用户没有操作此评论的权限
check_owner_workspace=当前用户没有操作此工作空间的权限
upload_content_is_null=导入内容为空
test_plan_notification=测试计划通知
task_defect_notification=缺陷任务通知
task_notification_=定时任务结果通知
api_definition_url_not_repeating=接口请求地址已经存在
api_definition_name_not_repeating=相同的名称-url组合已存在
task_notification_jenkins=jenkins任务通知
task_notification=任务通知
message_task_already_exists=任务接收人已经存在
#automation
automation_name_already_exists=同一个项目的同一模块下,场景名称不能重复
automation_exec_info=没有测试步骤,无法执行
delete_check_reference_by=被场景引用
not_execute=未执行
execute_not_pass=未通过
execute_pass=通过
import_fail_custom_num_exists=导入失败自定义ID已存在
#authsource
authsource_name_already_exists=认证源名称已经存在
authsource_name_is_null=认证源名称不能为空
authsource_configuration_is_null=认证源配置不能为空
custom_field_already=工作空间下已存在该字段:
template_already=工作空间下已存在该模板:
expect_name_exists=预期名称已存在
ssl_password_error=认证密码错误,请重新输入密码
ssl_file_error=认证文件加载失败,请检查认证文件
#log
api_definition=接口定义
api_definition_case=接口定义用例
api_automation=接口自动化
api_automation_schedule=接口自动化-定时任务
api_automation_report=测试报告
track_test_case=测试用例
track_test_case_review=用例评审
track_test_plan=测试计划
track_test_plan_schedule=测试计划-定时任务
track_bug=缺陷管理
track_report=报告
performance_test=性能测试
performance_test_report=性能测试报告
system_user=系统-用户
system_organization=系统-组织
system_workspace=工作空间
system_test_resource=系统-测试资源池
system_parameter_setting=系统-系统参数设置
system_quota_management=系统-配额管理
system_authorization_management=系统-授权管理
organization_member=组织-成员
organization_workspace=组织-工作空间
workspace_service_integration=工作空间-服务集成
workspace_message_settings=工作空间-消息设置
workspace_member=工作空间-成员
workspace_template_settings_field=工作空间-模版设置-自定义字段
workspace_template_settings_case=工作空间-模版设置-用例模版
workspace_template_settings_issue=工作空间-模版设置-缺陷模版
project_project_manager=项目-项目管理
project_project_member=项目-成员
project_project_jar=項目-JAR包管理
project_environment_setting=项目-环境设置
project_file_management=项目-文件管理
personal_information_personal_settings=个人信息-个人设置
personal_information_apikeys=个人信息-API Keys
auth_title=系统认证
group_permission=用户组与权限
test_case_status_prepare=未开始
test_case_status_again=重新提审
test_case_status_running=进行中
test_case_status_finished=已完成
connection_expired=连接已失效,请重新获取
# track home
api_case=接口用例
performance_case=性能用例
scenario_case=场景用例
scenario_name_is_null=场景名称不能为空
test_case_status_error=失败
test_case_status_success=成功
test_case_status_trash=废弃
test_case_status_saved=已保存
create_user=创建人
test_case_status=用例状态
id_not_rightful=ID 不合法
project_reference_multiple_plateform=项目指向多个第三方平台
# mock
mock_warning=未找到匹配的Mock期望
zentao_test_type_error=无效的 Zentao 请求
#项目报告
enterprise_test_report=项目报告
count=统计
cannot_find_project=未找到测试项目
project_repeatable_is_false=项目未配置URL可重复
#环境组
null_environment_group_name=环境组名称不存在
environment_group_name=环境组名称
environment_group_exist=已存在
environment_group_has_duplicate_project=每个项目只能选择一个环境!
#误报库
error_report_library=误报库
issue_jira_info_error=请检查服务集成信息或Jira项目ID
error_code_is_unique=错误代码不可重复
no_version_exists=不存在版本!请先创建项目的版本
jira_auth_error=账号名或密码(Token)错误
jira_auth_url_error=测试连接失败请检查Jira地址是否正确
#ui 指令校验
param_error=参数校验失败!请检查
is_null=不能为空
url_is_null=URL 参数不能为空
frame_index_is_null=网页索引号不能为空
element_is_null=元素对象已经被删除
locator_is_null=元素定位参数不能有空
coord=坐标
input_content=输入内容
subitem_type=子选项类型
subitem=子选项值
varname=变量名
varname_or_value=变量名或变量值
attributeName=属性名
webtitle_varname=网页标题变量名
webhandle_varname=网页窗口 handle变量名
cant_be_negative=不能为负数
expression=表达式
times=循环次数
command=步骤
extract_type=提取信息类型
cmdValidation=断言
cmdValidateValue=断言值
cmdValidateText=弹窗文本
cmdValidateDropdown=下拉框
cmdValidateElement=元素断言
cmdValidateTitle=网页标题
cmdOpen=打开网页
cmdSelectWindow=切换窗口
cmdSetWindowSize=设置窗口大小
cmdSelectFrame=选择内嵌网页
cmdDialog=弹窗操作
cmdDropdownBox=下拉框操作
submit=提交表单
cmdSetItem=设置选项
cmdWaitElement=等待元素
cmdInput=输入操作
cmdMouseClick=鼠标点击
cmdMouseMove=鼠标移动
cmdMouseDrag=鼠标拖拽
cmdTimes=次数循环
cmdForEach=ForEach 循环
cmdWhile=While 循环
cmdIf=If
cmdElse=Else
cmdElseIf=ElseIf
close=关闭网页
cmdExtraction=数据提取
cmdExtractWindow=提取窗口信息
cmdExtractElement=提取元素信息
tcp_mock_not_unique=该TCP端口号已被使用
no_tcp_mock_port=无可用的TCP端口号请联系管理员
name_already_exists_in_module=同层级下已经存在
# issue template copy
target_issue_template_not_checked=无法复制,未选中目标项目
source_issue_template_is_empty=复制错误,源项目为空
test_plan_report.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544AID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_report.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_report.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_report.name.length_range=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544A\u540D\u79F0\u957F\u5EA6\u8FC7\u957F
test_plan_report.name.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544A\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A
test_plan_report.create_user.length_range=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544A\u521B\u5EFA\u4EBA\u957F\u5EA6\u8FC7\u957F
test_plan_report.create_user.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544A\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A
test_plan_ui_scenario.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_ui_scenario.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_ui_scenario.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_ui_scenario.ui_scenario_id.length_range=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8B\u7684UI\u7528\u4F8BID\u957F\u5EA6\u8FC7\u957F
test_plan_ui_scenario.ui_scenario_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8B\u7684UI\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_ui_scenario.create_user.length_range=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8B\u521B\u5EFA\u4EBA\u957F\u5EA6\u8FC7\u957F
test_plan_ui_scenario.create_user.not_blank=\u6D4B\u8BD5\u8BA1\u5212UI\u7528\u4F8B\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A
test_plan_function_case.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_function_case.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_function_case.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_function_case.function_case_id.length_range=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8B\u7684\u529F\u80FD\u7528\u4F8BID\u957F\u5EA6\u8FC7\u957F
test_plan_function_case.function_case_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8B\u7684\u529F\u80FD\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_function_case.create_user.length_range=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8B\u521B\u5EFA\u4EBA\u957F\u5EA6\u8FC7\u957F
test_plan_function_case.create_user.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u529F\u80FD\u7528\u4F8B\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_scenario.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212API\u573A\u666FID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_scenario.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_api_scenario.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_scenario.api_scenario_id.length_range=\u6D4B\u8BD5\u8BA1\u5212Api\u573A\u666F\u7684Api\u573A\u666FID\u957F\u5EA6\u8FC7\u957F
test_plan_api_scenario.api_scenario_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212Api\u573A\u666F\u7684Api\u573A\u666FID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_scenario.create_user.length_range=\u6D4B\u8BD5\u8BA1\u5212API\u573A\u666F\u521B\u5EFA\u4EBA\u957F\u5EA6\u8FC7\u957F
test_plan_api_scenario.create_user.not_blank=\u6D4B\u8BD5\u8BA1\u5212API\u573A\u666F\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A
test_plan_follow.test_plan_id.not_blan=\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_follow.user_id.not_blank=\u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_case.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_case.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_api_case.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_case.api_case_id.length_range=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8B\u7684API\u7528\u4F8BID\u957F\u5EA6\u8FC7\u957F
test_plan_api_case.api_case_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8B\u7684API\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_api_case.create_user.length_range=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8B\u521B\u5EFA\u4EBA\u957F\u5EA6\u8FC7\u957F
test_plan_api_case.create_user.not_blank=\u6D4B\u8BD5\u8BA1\u5212API\u7528\u4F8B\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A
test_plan_config.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_config.automatic_status_update.length_range=\u81EA\u52A8\u72B6\u6001\u66F4\u65B0\u957F\u5EA6\u8FC7\u957F
test_plan_config.automatic_status_update.not_blank=\u81EA\u52A8\u72B6\u6001\u66F4\u65B0\u4E0D\u80FD\u4E3A\u7A7A
test_plan_config.repeat_case.length_range=\u91CD\u590D\u7528\u4F8B\u957F\u5EA6\u8FC7\u957F
test_plan_config.repeat_case.not_blank=\u91CD\u590D\u7528\u4F8B\u4E0D\u80FD\u4E3A\u7A7A
test_plan_config.pass_threshold.length_range=\u901A\u8FC7\u9608\u503C\u957F\u5EA6\u8FC7\u957F
test_plan_config.pass_threshold.not_blank=\u901A\u8FC7\u9608\u503C\u4E0D\u80FD\u4E3A\u7A7A
test_plan_load_case.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_load_case.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_load_case.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8B\u7684\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_load_case.load_case_id.length_range=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8B\u7684\u6027\u80FD\u7528\u4F8BID\u957F\u5EA6\u8FC7\u957F
test_plan_load_case.load_case_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8B\u7684\u6027\u80FD\u7528\u4F8BID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_load_case.create_user.length_range=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8B\u521B\u5EFA\u4EBA\u957F\u5EA6\u8FC7\u957F
test_plan_load_case.create_user.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6027\u80FD\u7528\u4F8B\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A
test_plan_execute_record_blob.test_plan_execute_record.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6267\u884C\u8BB0\u5F55\u4E0D\u80FD\u4E3A\u7A7A
test_plan_execute_record.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6267\u884C\u8BB0\u5F55ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_execute_record.test_plan_id.length_range=\u6D4B\u8BD5\u8BA1\u5212ID\u957F\u5EA6\u8FC7\u957F
test_plan_execute_record.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_execute_record.name.length_range=\u6D4B\u8BD5\u8BA1\u5212\u6267\u884C\u8BB0\u5F55\u540D\u79F0\u957F\u5EA6\u8FC7\u957F
test_plan_execute_record.name.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6267\u884C\u8BB0\u5F55\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A
test_plan_execute_record.status.length_range=\u6D4B\u8BD5\u8BA1\u5212\u6267\u884C\u8BB0\u5F55\u72B6\u6001\u957F\u5EA6\u8FC7\u957F
test_plan_execute_record.status.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u6267\u884C\u8BB0\u5F55\u72B6\u6001\u4E0D\u80FD\u4E3A\u7A7A
test_plan_principal.test_plan_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_principal.user_id.not_blank=\u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_report_content.id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544A\u5185\u5BB9ID\u4E0D\u80FD\u4E3A\u7A7A
test_plan_report_content.test_plan_report_id.length_range=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544AID\u957F\u5EA6\u8FC7\u957F
test_plan_report_content.test_plan_report_id.not_blank=\u6D4B\u8BD5\u8BA1\u5212\u62A5\u544AID\u4E0D\u80FD\u4E3A\u7A7A

View File

@ -1,378 +1,64 @@
#commons
error_lang_invalid=語言參數錯誤
file_cannot_be_null=文件不能為空!
cannot_be_null=不能為空
number=
row=
error=出錯
delete_fail=刪除失敗
start_engine_fail=啟動失敗
upload_fail=文件上傳失敗
invalid_parameter=非法的參數
name_already_exists=該名稱已經存在
resource_not_exist=資源不存在或已刪除
upload_file_fail_get_file_path_fail=文件上傳失敗,獲取文件上傳路徑為空
#user related
user_email_already_exists=用戶郵箱已存在
user_id_is_null=用戶ID不能為空
user_name_is_null=用戶名不能為空
user_email_is_null=用戶郵箱不能為空
password_is_null=密碼不能為空
user_id_already_exists=用戶id已存在
password_modification_failed=舊密碼輸入錯誤,請重新輸入
cannot_delete_current_user=無法刪除當前登錄用戶
connection_failed=連接失敗
connection_timeout=連接超時
user_already_exists=該用戶已存在於當前成員列表中
cannot_remove_current=無法移除當前登錄用戶
login_fail=登錄失敗
password_is_incorrect=用戶名或密碼不正確
user_not_exist=用戶不存在:
user_has_been_disabled=用戶已被禁用
excessive_attempts=操作頻繁
user_locked=用戶被鎖定
user_expires=用戶過期
not_authorized=未經授權
user_apikey_limit=最多能有5個Api key
please_logout_current_user=請先登出當前用戶
#load test
edit_load_test_not_found=無法編輯測試,未找到測試:
run_load_test_not_found=無法運行測試,未找到測試:
run_load_test_file_not_found=無法運行測試無法獲取測試文件元信息測試ID
run_load_test_file_content_not_found=無法運行測試無法獲取測試文件內容測試ID
run_load_test_file_init_error=無法運行測試,請前往 [系統設置-系統-系統參數設置] 檢查當前站點配置,詳情見 https://metersphere.io/docs/v2.x/faq/load_test/#url
load_test_is_running=測試正在運行, 請等待
load_test_kafka_invalid=Kafka 不可用,請檢查配置
cannot_edit_load_test_running=不能修改正在運行的測試
test_not_found=測試不存在:
test_not_running=測試未運行
load_test_already_exists=測試名稱不能重復
load_test_name_length=測試名稱長度超過限製
no_nodes_message=沒有節點信息
duplicate_node_ip=節點 IP 重復
duplicate_node_port=節點 Port 重復
duplicate_node_ip_port=節點 IP、Port 重復
max_thread_insufficient=並發用戶數超額
related_case_del_fail_prefix=已關聯到
related_case_del_fail_suffix=測試用例,請先解除關聯
jmx_content_valid=JMX 內容無效,請檢查
container_delete_fail=容器由於網絡原因停止失敗,請重試
load_test_report_file_not_exist=當前報告沒有JTL文件請等待或重新執行以便獲取
#workspace
workspace_name_is_null=工作空間名不能為空
workspace_name_already_exists=工作空間名已存在
workspace_does_not_belong_to_user=當前工作空間不屬於當前用戶
workspace_not_exists=工作空間不存在
#test resource pool
test_resource_pool_id_is_null=資源池ID不能為空
test_resource_pool_name_is_null=資源池名稱不能為空
test_resource_pool_name_already_exists=資源池名稱已存在
load_test=性能測試
test_resource_pool_is_use=正在使用此資源池,無法刪除
only_one_k8s=只能添加一個 K8S
test_resource_pool_not_exists=測試資源池不存在
test_resource_pool_invalid=當前測試使用的資源池處於禁用狀態
#project
project_name_is_null=項目名稱不能為空
project_name_already_exists=項目名稱已存在
project_file_already_exists=項目下該文件已經存在
project_file_in_use=占用文件,無法刪除。
#organization
organization_name_is_null=組織名不能為空
organization_name_already_exists=組織名已存在
organization_does_not_belong_to_user=當前組織不屬於當前用戶
organization_id_is_null=組織 ID 不能為空
#api
api_load_script_error=讀取腳本失敗
illegal_xml_format=不合法的 XML 格式
api_report_is_null="測試報告是未生成,無法更新"
api_test_environment_already_exists="已存在該名稱的環境配置"
api_test=接口測試
#test case
test_case_node_level=
test_case_node_level_tip=模塊樹最大深度為
test_case_module_not_null=所屬模塊不能為空
test_case_create_module_fail=創建模塊失敗
test_case_import_template_name=測試用例模版
test_case_import_template_sheet=模版
module_not_null=所屬模塊不能為空格
user_not_exists=該項目下無該用戶
test_case_already_exists=該項目下已存在該測試用例
parse_data_error=解析數據出錯
missing_header_information=缺少頭部信息
test_case_exist=該項目下已存在用例:
node_deep_limit=節點深度不超過8層
before_delete_plan=該計劃下存在關聯測試用例,請先取消關聯!
incorrect_format=格式錯誤
test_case_step_model_validate=必須為TEXT、STEP
test_case_priority_validate=必須為P0、P1、P2、P3
test_case_method_validate=必須為manual、auto
test_case_name=用例名稱
test_case_type=用例類型
test_case_maintainer=維護人
test_case_priority=用例等級
test_case_method=測試方式
test_case_prerequisite=前置條件
test_case_remark=備註
test_case_step_desc=步驟描述
test_case_step_result=預期結果
test_case_module=所屬模塊
test_case=功能用例
user=用戶
user_import_template_name=用戶導入模板
user_import_template_sheet=模版
user_import_format_wrong=格式錯誤
user_import_id_is_repeat=ID重復
user_import_email_is_repeat=E-mail重復
user_import_password_format_wrong=密碼格式錯誤
user_import_phone_format_wrong=手機號碼格式錯誤
user_import_email_format_wrong=電子郵箱格式錯誤
user_import_organization_not_fond=組織未找到
user_import_workspace_not_fond=工作空間未找到
org_admin=組織管理員
org_member=組織成員
test_manager=測試經理
tester=測試成員
read_only_user=只讀用戶
module=模塊
num_needed_modify_testcase=修改用例時ID必填
num_needless_create_testcase=創建用例時無需ID
tag_tip_pattern=標簽之間以分號或者逗號隔開
preconditions_optional=前置條件選填
remark_optional=備註選填
do_not_modify_header_order=請勿修改表頭順序
module_created_automatically=若無該模塊將自動創建
options=選項
options_yes=
options_no=
required=必填
password_format_is_incorrect=有效密碼8-30位英文大小寫字母+數字+特殊字符(可選)
please_input_project_member=請填寫該項目下的相關人員ID
test_case_report_template_repeat=同一工作空間下不能存在同名模版
plan_name_already_exists=測試計劃名稱已存在
test_case_already_exists_excel=文件中存在多條相同用例
test_case_module_already_exists=同層級下已存在該模塊名稱
api_test_name_already_exists=測試名稱已經存在
functional_method_tip=功能測試不支持自動方式
custom_num_is_exist=用例自定義ID已存在
custom_num_is_not_exist=用例自定義ID不存在
id_required=ID必填
id_repeat_in_table=表格內ID重復
step_model_tip=步驟描述填寫 STEP,文本描述請填寫 TEXT (非必填)
case_status_not_exist=用例狀態必須為未開始Prepare、進行中Underway、已完成Completed
issue_project_not_exist=ID不存在或其它錯誤
tapd_project_not_exist=關聯的TAPD項目ID不存在
zentao_get_project_builds_fail=獲取影響版本錯誤
zentao_project_id_not_exist=關聯的禪道ID不存在或其它錯誤
#ldap
ldap_url_is_null=LDAP地址為空
ldap_dn_is_null=LDAP綁定DN為空
ldap_ou_is_null=LDAP參數OU為空
ldap_password_is_null=LDAP密碼為空
ldap_connect_fail=連接LDAP失敗
ldap_connect_fail_user=連接LDAP失敗綁定的DN或密碼錯誤
ldap_user_filter_is_null=LDAP用戶過濾器為空
ldap_user_mapping_is_null=LDAP用戶屬性映射為空
authentication_failed=用戶認證失敗,用戶名或密碼錯誤
user_not_found_or_not_unique=用戶不存在或者不唯一
find_more_user=查找到多個用戶
ldap_authentication_not_enabled=LDAP認證未啟用
login_fail_email_null=登錄失敗,用戶郵箱為空
login_fail_ou_error=登錄失敗請檢查用戶OU
login_fail_filter_error=登錄失敗,請檢查用戶過濾器
check_ldap_mapping=檢查LDAP屬性映射
ldap_mapping_value_null=LDAP用戶屬性映射字段為空值
oauth_mapping_config_error=OAuth2屬性映射配置錯誤
oauth_mapping_value_null=OAuth2用戶屬性映射字段為空值
#quota
quota_project_excess_ws_api=項目的接口測試數量總和不能超過工作空間的配額
quota_project_excess_ws_performance=項目的性能測試數量總和不能超過工作空間的配額
quota_project_excess_ws_max_threads=項目的最大並發數不能超過工作空間的配額
quota_project_excess_ws_max_duration=項目的壓測時長不能超過工作空間的配額
quota_project_excess_ws_resource_pool=項目的資源池不能超過工作空間的資源池範圍
quota_project_excess_ws_vum_total=項目的總vum數量總和不能超過工作空間配額
quota_api_excess_workspace=接口測試數量超過工作空間限額
quota_vum_used_gt_vum_total=總vum數量不能小於已消耗的vum數量
quota_api_excess_project=接口測試數量超過項目限額
quota_performance_excess_workspace=性能測試數量超過工作空間限額
quota_performance_excess_project=性能測試數量超過項目限額
quota_max_threads_excess_workspace=最大並發數超過工作空間限額
quota_max_threads_excess_project=最大並發數超過項目限額
quota_duration_excess_project=壓測時長超過項目限額
quota_member_excess_workspace=成員數超過工作空間配額
quota_member_excess_project=成員數超過項目配額
quota_project_excess_project=項目數超過工作空間配額
quota_vum_used_excess_workspace=消耗的vum數量超過工作空間配額
quota_vum_used_excess_project=消耗的vum數量超過項目配額
import_xmind_count_error=思維導圖導入用例數量不能超過 800 條
license_valid_license_error=授權認證失敗
import_xmind_not_found=未找到測試用例
test_review_task_notice=測試評審任務通知
swagger_url_scheduled_import_notification=swagger_url定時導入通知
test_track.length_less_than=標題過長,字數必須小於
# check owner
check_owner_project=當前用戶沒有操作此項目的權限
check_owner_test=當前用戶沒有操作此測試的權限
check_owner_case=當前用戶沒有操作此用例的權限
check_owner_plan=當前用戶沒有操作此計劃的權限
check_owner_review=當前用戶沒有操作此評審的權限
check_owner_comment=當前用戶沒有操作此評論的權限
check_owner_workspace=當前用戶沒有操作此工作空間的權限
upload_content_is_null=導入內容為空
test_plan_notification=測試計劃通知
task_defect_notification=缺陷任務通知
task_notification_=定時任務結果通知
api_definition_url_not_repeating=接口請求地址已經存在
api_definition_name_not_repeating=相同的名稱-url組合已存在
task_notification_jenkins=jenkins任務通知
task_notification=任務通知
message_task_already_exists=任務接收人已經存在
#automation
automation_name_already_exists=同一個項目同一模塊下,場景名稱不能重復
automation_exec_info=沒有測試步驟,無法執行
delete_check_reference_by=被場景引用
not_execute=未執行
execute_not_pass=未通過
execute_pass=通過
import_fail_custom_num_exists=導入失敗自定義ID已存在
#authsource
authsource_name_already_exists=認證源名稱已經存在
authsource_name_is_null=認證源名稱不能為空
authsource_configuration_is_null=認證源配置不能為空
custom_field_already=工作空間下已存在該字段:
template_already=工作空間下已存在該模板:
expect_name_exists=預期名稱已存在
ssl_password_error=認證密碼錯誤,請重新輸入密碼
ssl_file_error=認證文件加載失敗,請檢查認證文件
#log
api_definition=接口定義
api_definition_case=接口定義用例
api_automation=接口自動化
api_automation_schedule=接口自動化-定時任務
api_automation_report=測試報告
track_test_case=測試用例
track_test_case_review=用例評審
track_test_plan=測試計劃
track_test_plan_schedule=測試計劃-定時任務
track_bug=缺陷管理
track_report=報告
performance_test=性能測試
performance_test_report=性能測試報告
system_user=系統-用戶
system_organization=系統-組織
system_workspace=工作空間
system_test_resource=系統-測試資源池
system_parameter_setting=系統-系統參數設置
system_quota_management=系統-配額管理
system_authorization_management=系統-授權管理
organization_member=組織-成員
organization_workspace=組織-工作空間
workspace_service_integration=工作空間-服務集成
workspace_message_settings=工作空間-消息設置
workspace_member=工作空間-成員
workspace_template_settings_field=工作空間-模版設置-自定義字段
workspace_template_settings_case=工作空間-模版設置-用例模版
workspace_template_settings_issue=工作空間-模版設置-缺陷模版
project_project_manager=項目-項目管理
project_project_member=項目-成員
project_project_jar=項目-JAR包管理
project_environment_setting=項目-環境設置
project_file_management=項目-文件管理
personal_information_personal_settings=個人信息-個人設置
personal_information_apikeys=個人信息-API Keys
auth_title=系統認證
group_permission=用戶組與權限
test_case_status_prepare=未開始
test_case_status_again=重新提審
test_case_status_running=進行中
test_case_status_finished=已完成
connection_expired=連接已失效,請重新獲取
# track home
api_case=接口用例
performance_case=性能用例
scenario_case=場景用例
scenario_name_is_null=場景名稱不能為空
test_case_status_error=失敗
test_case_status_success=成功
test_case_status_trash=廢棄
test_case_status_saved=已保存
create_user=創建人
test_case_status=用例狀態
id_not_rightful=ID 不合法
project_reference_multiple_plateform=項目指向多個第三方平臺
# mock
mock_warning=未找到匹配的Mock期望
zentao_test_type_error=請求方式錯誤
#项目报告
enterprise_test_report=項目報告
count=統計
cannot_find_project=未找到測試項目
project_repeatable_is_false=項目未配置URL可重複
#环境组
null_environment_group_name=環境組名稱不存在
environment_group_name=環境組名稱
environment_group_exist=已存在
environment_group_has_duplicate_project=每個項目只能選擇一個環境!
#误报库
error_report_library=誤報庫
issue_jira_info_error=請檢查服務集成信息或Jira項目ID
error_code_is_unique=錯誤代碼不可重複
no_version_exists=不存在版本!請先創建項目的版本
jira_auth_error=賬號名或密碼(Token)錯誤
jira_auth_url_error=測試連接失敗請檢查Jira地址是否正確
#ui 指令校驗
param_error=參數校驗失敗!請檢查
is_null=不能為空
url_is_null=URL 參數不能為空
frame_index_is_null=網頁索引號不能為空
element_is_null=元素對象已經被刪除
locator_is_null=元素定位參數不能有空
coord=坐標
input_content=輸入內容
subitem_type=子選項類型
subitem=子選項值
varname=變量名
varname_or_value=變量名或變量值
attributeName=屬性名
webtitle_varname=網頁標題變量名
webhandle_varname=網頁窗口 handle變量名
cant_be_negative=不能為負數
expression=表達式
times=循環次數
command=步驟
extract_type=提取信息類型
cmdValidation=斷言
cmdValidateValue=斷言值
cmdValidateText=彈窗文本
cmdValidateDropdown=下拉框
cmdValidateElement=元素斷言
cmdValidateTitle=網頁標題
cmdOpen=打開網頁
cmdSelectWindow=切換窗口
cmdSetWindowSize=設置窗口大小
cmdSelectFrame=選擇內嵌網頁
cmdDialog=彈窗操作
cmdDropdownBox=下拉框操作
submit=提交表單
cmdSetItem=設置選項
cmdWaitElement=等待元素
cmdInput=輸入操作
cmdMouseClick=鼠標點擊
cmdMouseMove=鼠標移動
cmdMouseDrag=鼠標拖拽
cmdTimes=次數循環
cmdForEach=ForEach 循環
cmdWhile=While 循環
cmdIf=If
cmdElse=Else
cmdElseIf=ElseIf
close=關閉網頁
cmdExtraction=數據提取
cmdExtractWindow=提取窗口信息
cmdExtractElement=提取元素信息
tcp_mock_not_unique=該TCP端口號已被使用
no_tcp_mock_port=無可用的TCP端口號請聯繫管理員
name_already_exists_in_module=同層級下已存在
# issue template copy
target_issue_template_not_checked=無法複製,未選中目標項目
source_issue_template_is_empty=複製錯誤,源項目為空
test_plan_report.id.not_blank=\u6E2C\u8A66\u8A08\u5283\u5831\u544AID\u4E0D\u80FD\u70BA\u7A7A
test_plan_report.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_report.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_report.name.length_range=\u6E2C\u8A66\u8A08\u5283\u5831\u544A\u540D\u7A31\u9577\u5EA6\u904E\u9577
test_plan_report.name.not_blank=\u6E2C\u8A66\u8A08\u5283\u5831\u544A\u540D\u7A31\u4E0D\u80FD\u70BA\u7A7A
test_plan_report.create_user.length_range=\u6E2C\u8A66\u8A08\u5283\u5831\u544A\u5275\u5EFA\u4EBA\u9577\u5EA6\u904E\u9577
test_plan_report.create_user.not_blank=\u6E2C\u8A66\u8A08\u5283\u5831\u544A\u5275\u5EFA\u4EBA\u4E0D\u80FD\u70BA\u7A7A
test_plan_ui_scenario.id.not_blank=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_ui_scenario.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_ui_scenario.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_ui_scenario.ui_scenario_id.length_range=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8B\u7684UI\u7528\u4F8BID\u9577\u5EA6\u904E\u9577
test_plan_ui_scenario.ui_scenario_id.not_blank=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8B\u7684UI\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_ui_scenario.create_user.length_range=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8B\u5275\u5EFA\u4EBA\u9577\u5EA6\u904E\u9577
test_plan_ui_scenario.create_user.not_blank=\u6E2C\u8A66\u8A08\u5283UI\u7528\u4F8B\u5275\u5EFA\u4EBA\u4E0D\u80FD\u70BA\u7A7A
test_plan_function_case.id.not_blank=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_function_case.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_function_case.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_function_case.function_case_id.length_range=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8B\u7684\u529F\u80FD\u7528\u4F8BID\u9577\u5EA6\u904E\u9577
test_plan_function_case.function_case_id.not_blank=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8B\u7684\u529F\u80FD\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_function_case.create_user.length_range=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8B\u5275\u5EFA\u4EBA\u9577\u5EA6\u904E\u9577
test_plan_function_case.create_user.not_blank=\u6E2C\u8A66\u8A08\u5283\u529F\u80FD\u7528\u4F8B\u5275\u5EFA\u4EBA\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_scenario.id.not_blank=\u6E2C\u8A66\u8A08\u5283API\u5834\u666FID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_scenario.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_api_scenario.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_scenario.api_scenario_id.length_range=\u6E2C\u8A66\u8A08\u5283Api\u5834\u666F\u7684Api\u5834\u666FID\u9577\u5EA6\u904E\u9577
test_plan_api_scenario.api_scenario_id.not_blank=\u6E2C\u8A66\u8A08\u5283Api\u5834\u666F\u7684Api\u5834\u666FID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_scenario.create_user.length_range=\u6E2C\u8A66\u8A08\u5283API\u5834\u666F\u5275\u5EFA\u4EBA\u9577\u5EA6\u904E\u9577
test_plan_api_scenario.create_user.not_blank=\u6E2C\u8A66\u8A08\u5283API\u5834\u666F\u5275\u5EFA\u4EBA\u4E0D\u80FD\u70BA\u7A7A
test_plan_follow.test_plan_id.not_blan=\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_follow.user_id.not_blank=\u7528\u6236ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_case.id.not_blank=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_case.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_api_case.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_case.api_case_id.length_range=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8B\u7684API\u7528\u4F8BID\u9577\u5EA6\u904E\u9577
test_plan_api_case.api_case_id.not_blank=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8B\u7684API\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_api_case.create_user.length_range=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8B\u5275\u5EFA\u4EBA\u9577\u5EA6\u904E\u9577
test_plan_api_case.create_user.not_blank=\u6E2C\u8A66\u8A08\u5283API\u7528\u4F8B\u5275\u5EFA\u4EBA\u4E0D\u80FD\u70BA\u7A7A
test_plan_config.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_config.automatic_status_update.length_range=\u81EA\u52D5\u72C0\u614B\u66F4\u65B0\u9577\u5EA6\u904E\u9577
test_plan_config.automatic_status_update.not_blank=\u81EA\u52D5\u72C0\u614B\u66F4\u65B0\u4E0D\u80FD\u70BA\u7A7A
test_plan_config.repeat_case.length_range=\u91CD\u8907\u7528\u4F8B\u9577\u5EA6\u904E\u9577
test_plan_config.repeat_case.not_blank=\u91CD\u8907\u7528\u4F8B\u4E0D\u80FD\u70BA\u7A7A
test_plan_config.pass_threshold.length_range=\u901A\u904E\u95BE\u503C\u9577\u5EA6\u904E\u9577
test_plan_config.pass_threshold.not_blank=\u901A\u904E\u95BE\u503C\u4E0D\u80FD\u70BA\u7A7A
test_plan_load_case.id.not_blank=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_load_case.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_load_case.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8B\u7684\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_load_case.load_case_id.length_range=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8B\u7684\u6027\u80FD\u7528\u4F8BID\u9577\u5EA6\u904E\u9577
test_plan_load_case.load_case_id.not_blank=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8B\u7684\u6027\u80FD\u7528\u4F8BID\u4E0D\u80FD\u70BA\u7A7A
test_plan_load_case.create_user.length_range=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8B\u5275\u5EFA\u4EBA\u9577\u5EA6\u904E\u9577
test_plan_load_case.create_user.not_blank=\u6E2C\u8A66\u8A08\u5283\u6027\u80FD\u7528\u4F8B\u5275\u5EFA\u4EBA\u4E0D\u80FD\u70BA\u7A7A
test_plan_execute_record_blob.test_plan_execute_record.not_blank=\u6E2C\u8A66\u8A08\u5283\u57F7\u884C\u8A18\u9304\u4E0D\u80FD\u70BA\u7A7A
test_plan_execute_record.id.not_blank=\u6E2C\u8A66\u8A08\u5283\u57F7\u884C\u8A18\u9304ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_execute_record.test_plan_id.length_range=\u6E2C\u8A66\u8A08\u5283ID\u9577\u5EA6\u904E\u9577
test_plan_execute_record.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_execute_record.name.length_range=\u6E2C\u8A66\u8A08\u5283\u57F7\u884C\u8A18\u9304\u540D\u7A31\u9577\u5EA6\u904E\u9577
test_plan_execute_record.name.not_blank=\u6E2C\u8A66\u8A08\u5283\u57F7\u884C\u8A18\u9304\u540D\u7A31\u4E0D\u80FD\u70BA\u7A7A
test_plan_execute_record.status.length_range=\u6E2C\u8A66\u8A08\u5283\u57F7\u884C\u8A18\u9304\u72C0\u614B\u9577\u5EA6\u904E\u9577
test_plan_execute_record.status.not_blank=\u6E2C\u8A66\u8A08\u5283\u57F7\u884C\u8A18\u9304\u72C0\u614B\u4E0D\u80FD\u70BA\u7A7A
test_plan_principal.test_plan_id.not_blank=\u6E2C\u8A66\u8A08\u5283ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_principal.user_id.not_blank=\u7528\u6236ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_report_content.id.not_blank=\u6E2C\u8A66\u8A08\u5283\u5831\u544A\u5167\u5BB9ID\u4E0D\u80FD\u70BA\u7A7A
test_plan_report_content.test_plan_report_id.length_range=\u6E2C\u8A66\u8A08\u5283\u5831\u544AID\u9577\u5EA6\u904E\u9577
test_plan_report_content.test_plan_report_id.not_blank=\u6E2C\u8A66\u8A08\u5283\u5831\u544AID\u4E0D\u80FD\u70BA\u7A7A