feat(测试计划): 关联抽屉接口列表

This commit is contained in:
WangXu10 2024-06-03 10:31:02 +08:00 committed by 刘瑞斌
parent e0c264e2ca
commit d258f4e669
14 changed files with 2443 additions and 3 deletions

View File

@ -433,7 +433,7 @@ public class ApiDefinitionService extends MoveNodeService {
} }
} }
private void processApiDefinitions(List<ApiDefinitionDTO> list) { public void processApiDefinitions(List<ApiDefinitionDTO> list) {
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return; return;
} }

View File

@ -46,6 +46,11 @@
<artifactId>metersphere-bug-management</artifactId> <artifactId>metersphere-bug-management</artifactId>
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
<dependency>
<groupId>io.metersphere</groupId>
<artifactId>metersphere-api-test</artifactId>
<version>${revision}</version>
</dependency>
</dependencies> </dependencies>

View File

@ -2,9 +2,12 @@ package io.metersphere.plan.controller;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import io.metersphere.api.dto.definition.ApiDefinitionDTO;
import io.metersphere.functional.dto.FunctionalCasePageDTO; import io.metersphere.functional.dto.FunctionalCasePageDTO;
import io.metersphere.functional.request.FunctionalCasePageRequest; import io.metersphere.functional.request.FunctionalCasePageRequest;
import io.metersphere.functional.service.FunctionalCaseService; import io.metersphere.functional.service.FunctionalCaseService;
import io.metersphere.plan.dto.request.TestPlanApiRequest;
import io.metersphere.plan.service.TestPlanApiCaseService;
import io.metersphere.plan.service.TestPlanConfigService; import io.metersphere.plan.service.TestPlanConfigService;
import io.metersphere.sdk.constants.PermissionConstants; import io.metersphere.sdk.constants.PermissionConstants;
import io.metersphere.system.security.CheckOwner; import io.metersphere.system.security.CheckOwner;
@ -32,6 +35,8 @@ public class TestPlanAssociateController {
private TestPlanConfigService testPlanConfigService; private TestPlanConfigService testPlanConfigService;
@Resource @Resource
private FunctionalCaseService functionalCaseService; private FunctionalCaseService functionalCaseService;
@Resource
private TestPlanApiCaseService testPlanApiCaseService;
@PostMapping("/page") @PostMapping("/page")
@Operation(summary = "测试计划-关联用例弹窗-功能用例列表查询(项目)") @Operation(summary = "测试计划-关联用例弹窗-功能用例列表查询(项目)")
@ -47,4 +52,15 @@ public class TestPlanAssociateController {
return PageUtils.setPageInfo(page, functionalCaseService.getFunctionalCasePage(request, false, isRepeat)); return PageUtils.setPageInfo(page, functionalCaseService.getFunctionalCasePage(request, false, isRepeat));
} }
@PostMapping("/api/page")
@Operation(summary = "测试计划-关联用例弹窗-接口列表查询(项目)")
@RequiresPermissions(PermissionConstants.PROJECT_API_DEFINITION_READ)
@CheckOwner(resourceId = "#request.getTestPlanId()", resourceType = "test_plan")
public Pager<List<ApiDefinitionDTO>> getApiPage(@Validated @RequestBody TestPlanApiRequest request) {
boolean isRepeat = testPlanConfigService.isRepeatCase(request.getTestPlanId());
Page<Object> page = PageHelper.startPage(request.getCurrent(), request.getPageSize(),
StringUtils.isNotBlank(request.getSortString()) ? request.getSortString() : "pos desc");
return PageUtils.setPageInfo(page, testPlanApiCaseService.getApiPage(request, isRepeat));
}
} }

View File

@ -0,0 +1,17 @@
package io.metersphere.plan.dto.request;
import io.metersphere.api.dto.definition.ApiDefinitionPageRequest;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
* @author wx
*/
@Data
public class TestPlanApiRequest extends ApiDefinitionPageRequest {
@Schema(description = "测试计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "{test_plan.id.not_blank}")
private String testPlanId;
}

View File

@ -1,8 +1,10 @@
package io.metersphere.plan.mapper; package io.metersphere.plan.mapper;
import io.metersphere.api.dto.definition.ApiDefinitionDTO;
import io.metersphere.plan.dto.AssociationNode; import io.metersphere.plan.dto.AssociationNode;
import io.metersphere.plan.dto.ResourceSelectParam; import io.metersphere.plan.dto.ResourceSelectParam;
import io.metersphere.plan.dto.TestPlanCaseRunResultCount; import io.metersphere.plan.dto.TestPlanCaseRunResultCount;
import io.metersphere.plan.dto.request.TestPlanApiRequest;
import io.metersphere.project.dto.NodeSortQueryParam; import io.metersphere.project.dto.NodeSortQueryParam;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -23,4 +25,6 @@ public interface ExtTestPlanApiCaseMapper {
AssociationNode selectNodeByPosOperator(NodeSortQueryParam nodeSortQueryParam); AssociationNode selectNodeByPosOperator(NodeSortQueryParam nodeSortQueryParam);
List<TestPlanCaseRunResultCount> selectCaseExecResultCount(String testPlanId); List<TestPlanCaseRunResultCount> selectCaseExecResultCount(String testPlanId);
List<ApiDefinitionDTO> list(@Param("request") TestPlanApiRequest request, @Param("isRepeat") boolean isRepeat);
} }

View File

@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.metersphere.plan.mapper.ExtTestPlanApiCaseMapper"> <mapper namespace="io.metersphere.plan.mapper.ExtTestPlanApiCaseMapper">
<resultMap id="ApiDefinitionDTO" type="io.metersphere.api.dto.definition.ApiDefinitionDTO">
<result column="tags" jdbcType="VARCHAR" property="tags" typeHandler="io.metersphere.handler.ListTypeHandler" />
</resultMap>
<update id="updatePos"> <update id="updatePos">
UPDATE UPDATE
test_plan_api_case test_plan_api_case
@ -77,4 +82,317 @@
and api_test_case.deleted = false and api_test_case.deleted = false
group by last_exec_result group by last_exec_result
</select> </select>
<select id="list" resultMap="ApiDefinitionDTO">
select
api_definition.id, api_definition.`name`, api_definition.protocol, api_definition.`method`,
api_definition.`path`, api_definition.`status`, api_definition.num, api_definition.tags, api_definition.pos,
api_definition.project_id, api_definition.module_id, api_definition.latest, api_definition.version_id,
api_definition.ref_id, api_definition.description, api_definition.create_time, api_definition.create_user,
api_definition.update_time, api_definition.update_user, api_definition.delete_user, api_definition.delete_time,
api_definition.deleted, project_version.name as version_name
from api_definition
LEFT JOIN project_version ON project_version.id = api_definition.version_id
where api_definition.deleted = false
<include refid="queryWhereCondition"/>
and exists (
select id
from api_test_case c
where c.api_definition_id = api_definition.id and c.deleted = false
<if test="!isRepeat">
and not exists (
select id
from test_plan_api_case t
where t.api_case_id = c.id
and t.test_plan_id = #{request.testPlanId}
)
</if>
)
</select>
<sql id="queryWhereCondition">
<if test="request.moduleIds != null and request.moduleIds.size() > 0">
and api_definition.module_id in
<foreach collection="request.moduleIds" item="moduleId" separator="," open="(" close=")">
#{moduleId}
</foreach>
</if>
<if test="request.keyword != null and request.keyword != ''">
and (
api_definition.name like concat('%', #{request.keyword},'%')
or api_definition.num like concat('%', #{request.keyword},'%')
or api_definition.path like concat('%', #{request.keyword},'%')
)
</if>
<if test="request.projectId != null and request.projectId != ''">
and api_definition.project_id = #{request.projectId}
</if>
<if test="request.protocol != null and request.protocol != ''">
AND api_definition.protocol = #{request.protocol}
</if>
<include refid="filters">
<property name="filter" value="request.filter"/>
</include>
<choose>
<when test='request.searchMode == "AND"'>
AND <include refid="queryCombine"/>
</when>
<when test='request.searchMode == "OR"'>
and (
<include refid="queryCombine"/>
)
</when>
</choose>
<include refid="queryVersionCondition">
<property name="versionTable" value="api_definition"/>
</include>
</sql>
<sql id="filters">
<if test="${filter} != null and ${filter}.size() > 0">
<foreach collection="${filter}.entrySet()" index="key" item="values">
<if test="values != null and values.size() > 0">
<choose>
<when test="key=='status'">
and api_definition.status in
<include refid="io.metersphere.system.mapper.BaseMapper.filterInWrapper"/>
</when>
<when test="key=='method'">
and api_definition.method in
<include refid="io.metersphere.system.mapper.BaseMapper.filterInWrapper"/>
</when>
<when test="key=='createUser'">
and api_definition.create_user in
<include refid="io.metersphere.system.mapper.BaseMapper.filterInWrapper"/>
</when>
<when test="key=='versionId'">
and api_definition.version_id in
<include refid="io.metersphere.system.mapper.BaseMapper.filterInWrapper"/>
</when>
<when test="key=='deleteUser'">
and api_definition.delete_user in
<include refid="io.metersphere.system.mapper.BaseMapper.filterInWrapper"/>
</when>
<when test="key.startsWith('custom_single')">
and api_definition.id in (
select api_id from api_definition_custom_field where concat('custom_single_', field_id) = #{key}
and trim(both '"' from `value`) in
<include refid="io.metersphere.system.mapper.BaseMapper.filterInWrapper"/>
)
</when>
<when test="key.startsWith('custom_multiple')">
and api_definition.id in (
select api_id from api_definition_custom_field where concat('custom_multiple_', field_id) = #{key}
and JSON_CONTAINS(`value`, json_array(#{value}))
)
</when>
</choose>
</if>
</foreach>
</if>
</sql>
<sql id="queryCombine">
<if test="request.combine != null">
<include refid="combine">
<property name="condition" value="request.combine"/>
<property name="searchMode" value="request.searchMode"/>
</include>
</if>
1=1
</sql>
<sql id="combine">
<!-- 名称 -->
<if test='${condition}.name != null and (${name} == null or ${name} == "")'>
api_definition.name
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.name"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- id -->
<if test='${condition}.id != null'>
api_definition.num
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.id"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 所属模块 -->
<if test='${condition}.moduleId != null'>
api_definition.moduleId
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.moduleId"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 创建人 -->
<if test='${condition}.createUser != null'>
api_definition.create_user
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.createUser"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 创建时间 -->
<if test='${condition}.createTime != null'>
api_definition.create_time
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.createTime"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 更新人 -->
<if test='${condition}.updateUser != null'>
api_definition.update_user
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.updateUser"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 更新时间 -->
<if test='${condition}.updateTime != null'>
api_definition.update_time
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.updateTime"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 状态 -->
<if test="${condition}.status != null">
api_definition.status
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.status"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 路径 -->
<if test="${condition}.path != null">
api_definition.path
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.path"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 方法 -->
<if test="${condition}.method != null">
api_definition.method
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="${condition}.method"/>
</include>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 标签 -->
<if test='${condition}.tags != null'>
<include refid="queryTag">
<property name="searchMode" value="${searchMode}"/>
<property name="combineTag" value="${condition}.tags"/>
</include>
</if>
<if test="${condition}.customs != null and ${condition}.customs.size() > 0">
<foreach collection="${condition}.customs" item="custom" separator="" open="" close="">
api_definition.id ${custom.operator} (
select api_id from api_definition_custom_field where field_id = #{custom.id}
<choose>
<when test="custom.type == 'List'">
and JSON_CONTAINS(`value`, json_array(#{custom.value}))
</when>
<when test="custom.type == 'date' or custom.type == 'datetime'">
and `value`
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="custom"/>
</include>
</when>
<otherwise>
and trim(both '"' from `value`)
<include refid="io.metersphere.system.mapper.BaseMapper.condition">
<property name="object" value="custom"/>
</include>
</otherwise>
</choose>
)
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</foreach>
</if>
</sql>
<sql id="queryTag">
<!-- 不包含 -->
<if test='${combineTag}.value.size() > 0 and ${combineTag}.operator == "not like"'>
(
api_definition.tags is null or api_definition.tags = '[]' or
<foreach collection="${combineTag}.value" item="tag" separator="and" open="(" close=")">
!JSON_CONTAINS(api_definition.tags, JSON_ARRAY(#{tag}))
</foreach>
)
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!-- 包含 -->
<if test='${combineTag}.value.size() > 0 and ${combineTag}.operator == "like"'>
<foreach collection="${combineTag}.value" item="tag" separator="or" open="(" close=")">
JSON_CONTAINS(api_definition.tags, JSON_ARRAY(#{tag}))
</foreach>
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
<!---->
<if test='${combineTag}.operator == "is null"'>
(api_definition.tags is null or api_definition.tags = '[]')
<include refid="queryType">
<property name="searchMode" value="${searchMode}"/>
</include>
</if>
</sql>
<sql id="queryType">
<choose>
<when test='${searchMode} == "AND"'>
AND
</when>
<when test='${searchMode} == "OR"'>
OR
</when>
</choose>
</sql>
<sql id="queryVersionCondition">
<choose>
<when test="request.versionId != null and request.versionId != ''">
and ${versionTable}.version_id = #{request.versionId}
</when>
<when test="request.refId != null and request.refId != ''">
and ${versionTable}.ref_id = #{request.refId}
</when>
<otherwise>
and ${versionTable}.latest = 1
</otherwise>
</choose>
</sql>
</mapper> </mapper>

View File

@ -1,7 +1,10 @@
package io.metersphere.plan.service; package io.metersphere.plan.service;
import io.metersphere.api.dto.definition.ApiDefinitionDTO;
import io.metersphere.api.service.definition.ApiDefinitionService;
import io.metersphere.plan.domain.TestPlanApiCaseExample; import io.metersphere.plan.domain.TestPlanApiCaseExample;
import io.metersphere.plan.dto.TestPlanCaseRunResultCount; import io.metersphere.plan.dto.TestPlanCaseRunResultCount;
import io.metersphere.plan.dto.request.TestPlanApiRequest;
import io.metersphere.plan.mapper.ExtTestPlanApiCaseMapper; import io.metersphere.plan.mapper.ExtTestPlanApiCaseMapper;
import io.metersphere.plan.mapper.TestPlanApiCaseMapper; import io.metersphere.plan.mapper.TestPlanApiCaseMapper;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -22,6 +25,8 @@ public class TestPlanApiCaseService extends TestPlanResourceService {
private TestPlanApiCaseMapper testPlanApiCaseMapper; private TestPlanApiCaseMapper testPlanApiCaseMapper;
@Resource @Resource
private ExtTestPlanApiCaseMapper extTestPlanApiCaseMapper; private ExtTestPlanApiCaseMapper extTestPlanApiCaseMapper;
@Resource
private ApiDefinitionService apiDefinitionService;
@Override @Override
public void deleteBatchByTestPlanId(List<String> testPlanIdList) { public void deleteBatchByTestPlanId(List<String> testPlanIdList) {
@ -60,5 +65,10 @@ public class TestPlanApiCaseService extends TestPlanResourceService {
// SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory); // SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
} }
public List<ApiDefinitionDTO> getApiPage(TestPlanApiRequest request, boolean isRepeat) {
List<ApiDefinitionDTO> list = extTestPlanApiCaseMapper.list(request, isRepeat);
apiDefinitionService.processApiDefinitions(list);
return list;
}
} }

View File

@ -1,5 +1,6 @@
package io.metersphere.plan; package io.metersphere.plan;
import io.metersphere.api.config.JmeterProperties;
import io.metersphere.system.config.MinioProperties; import io.metersphere.system.config.MinioProperties;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -16,10 +17,11 @@ import org.springframework.context.annotation.ComponentScan;
Neo4jAutoConfiguration.class Neo4jAutoConfiguration.class
}) })
@EnableConfigurationProperties({ @EnableConfigurationProperties({
MinioProperties.class MinioProperties.class,
JmeterProperties.class
}) })
@ServletComponentScan @ServletComponentScan
@ComponentScan(basePackages = {"io.metersphere.sdk", "io.metersphere.plan", "io.metersphere.system", "io.metersphere.project", "io.metersphere.bug","io.metersphere.functional"}) @ComponentScan(basePackages = {"io.metersphere.sdk", "io.metersphere.plan", "io.metersphere.system", "io.metersphere.project", "io.metersphere.api", "io.metersphere.bug","io.metersphere.functional"})
public class TestPlanApplication { public class TestPlanApplication {
public static void main(String[] args) { public static void main(String[] args) {

View File

@ -1,6 +1,7 @@
package io.metersphere.plan.controller; package io.metersphere.plan.controller;
import io.metersphere.functional.request.FunctionalCasePageRequest; import io.metersphere.functional.request.FunctionalCasePageRequest;
import io.metersphere.plan.dto.request.TestPlanApiRequest;
import io.metersphere.sdk.util.JSON; import io.metersphere.sdk.util.JSON;
import io.metersphere.system.base.BaseTest; import io.metersphere.system.base.BaseTest;
import io.metersphere.system.controller.handler.ResultHolder; import io.metersphere.system.controller.handler.ResultHolder;
@ -19,6 +20,7 @@ import java.util.HashMap;
@AutoConfigureMockMvc @AutoConfigureMockMvc
public class TestPlanAssociateControllerTests extends BaseTest { public class TestPlanAssociateControllerTests extends BaseTest {
public static final String FUNCTIONAL_CASE_ASSOCIATION_URL = "/test-plan/association/page"; public static final String FUNCTIONAL_CASE_ASSOCIATION_URL = "/test-plan/association/page";
public static final String API_ASSOCIATION_URL = "/test-plan/association/api/page";
@Test @Test
@Order(1) @Order(1)
@ -39,4 +41,22 @@ public class TestPlanAssociateControllerTests extends BaseTest {
Assertions.assertNotNull(resultHolder); Assertions.assertNotNull(resultHolder);
} }
@Test
@Order(2)
public void testApiPageList() throws Exception {
TestPlanApiRequest request = new TestPlanApiRequest();
request.setProjectId("123");
request.setCurrent(1);
request.setPageSize(10);
request.setTestPlanId("wxx_1");
this.requestPost(API_ASSOCIATION_URL, request);
request.setSort(new HashMap<>() {{
put("createTime", "desc");
}});
MvcResult mvcResult = this.requestPostWithOkAndReturn(API_ASSOCIATION_URL, request);
String returnData = mvcResult.getResponse().getContentAsString(StandardCharsets.UTF_8);
ResultHolder resultHolder = JSON.parseObject(returnData, ResultHolder.class);
Assertions.assertNotNull(resultHolder);
}
} }

View File

@ -19,3 +19,15 @@ VALUES
('wxx_test_2', 2, '1', '123', '100001', '2222', 'UN_REVIEWED', NULL, 'TEXT', 55000, 'v3.0.0', 'TEST_FUNCTIONAL_MINDER_CASE_ID_7', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL), ('wxx_test_2', 2, '1', '123', '100001', '2222', 'UN_REVIEWED', NULL, 'TEXT', 55000, 'v3.0.0', 'TEST_FUNCTIONAL_MINDER_CASE_ID_7', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL),
('wxx_test_3', 3, 'root', '123', '100001', '3333', 'UN_REVIEWED', NULL, 'TEXT', 55000, 'v3.0.0', 'TEST_FUNCTIONAL_MINDER_CASE_ID_7', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL); ('wxx_test_3', 3, 'root', '123', '100001', '3333', 'UN_REVIEWED', NULL, 'TEXT', 55000, 'v3.0.0', 'TEST_FUNCTIONAL_MINDER_CASE_ID_7', 'UN_EXECUTED', b'0', b'0', b'1', 'admin', 'admin', '', 1698058347559, 1698058347559, NULL);
INSERT INTO `api_definition`(`id`, `name`, `protocol`, `method`, `path`, `status`, `num`, `tags`, `pos`, `project_id`, `module_id`, `latest`, `version_id`, `ref_id`, `description`, `create_time`, `create_user`, `update_time`, `update_user`, `delete_user`, `delete_time`, `deleted`)
VALUES
('wxx_api_1', '2222', 'HTTP', 'GET', '/111', 'DEPRECATED', 100003, '[]', 192, '123', 'root', b'1', '100844458962059498', '1086025445195776', '', 1716370415311, 'admin', 1716455838628, 'admin', NULL, NULL, b'0'),
('wxx_api_2', '3333', 'HTTP', 'GET', '/111', 'DEPRECATED', 100003, '[]', 192, '123', 'root', b'1', '100844458962059498', '1086025445195776', '', 1716370415311, 'admin', 1716455838628, 'admin', NULL, NULL, b'0'),
('wxx_api_3', '4444', 'HTTP', 'GET', '/111', 'DEPRECATED', 100003, '[]', 192, '123', 'root', b'1', '100844458962059498', '1086025445195776', '', 1716370415311, 'admin', 1716455838628, 'admin', NULL, NULL, b'0');
INSERT INTO `api_test_case`(`id`, `name`, `priority`, `num`, `tags`, `status`, `last_report_status`, `last_report_id`, `pos`, `project_id`, `api_definition_id`, `version_id`, `environment_id`, `create_time`, `create_user`, `update_time`, `update_user`, `delete_time`, `delete_user`, `deleted`)
VALUES
('wxx_api_case_1', '231', 'P0', 100055001, '[]', 'PROCESSING', 'SUCCESS', '1130899263537153', 64, '123', 'wxx_api_1', '899658209591296', '899606669983745', 1716199600948, 'admin', 1716199600948, 'admin', NULL, NULL, b'0'),
('wxx_api_case_2', '232', 'P0', 100055001, '[]', 'PROCESSING', 'SUCCESS', '1130899263537153', 64, '123', 'wxx_api_1', '899658209591296', '899606669983745', 1716199600948, 'admin', 1716199600948, 'admin', NULL, NULL, b'0'),
('wxx_api_case_3', '233', 'P0', 100055001, '[]', 'PROCESSING', 'SUCCESS', '1130899263537153', 64, '123', 'wxx_api_2', '899658209591296', '899606669983745', 1716199600948, 'admin', 1716199600948, 'admin', NULL, NULL, b'0');

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,420 @@
#---------------------------------------------------------
# SAVESERVICE PROPERTIES - JMETER INTERNAL USE ONLY
#---------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
# This file is used to define how XStream (de-)serializes classnames
# in JMX test plan files.
# FOR JMETER INTERNAL USE ONLY
#---------------------------------------------------------
# N.B. To ensure backward compatibility, please do NOT change or delete any entries
# New entries can be added as necessary.
#
# Note that keys starting with an underscore are special,
# and are not used as aliases.
#
# Please keep the entries in alphabetical order within the sections
# to reduce the likelihood of duplicates
#
# version number of this file is now computed by a sha1 sum, so no need for
# an explicit _file_version property anymore.
#
# For this sha1 sum we ignore every newline character. It can be computed
# by the following command:
#
# cat bin/saveservice.properties | perl -ne 'chomp; print' | sha1sum
#
# Be aware, that every change in this file will change the sha1 sum!
#
# Conversion version (for JMX output files)
# Must be updated if the file has been changed since the previous release
# Format is:
# Save service version=JMeter version at which change occurred
# 1.7 = 2.1.1
# 1.8 = 2.1.2
# (Some version updates were missed here...)
# 2.0 = 2.3.1
# 2.1 = 2.3.2
# (Some version updates were missed here...)
# 2.2 = 2.6
# 2.3 = 2.7
# 2.4 = 2.9
# 2.5 = 2.10
# 2.6 = 2.11
# 2.7 = 2.12
# 2.8 = 2.13
# 2.9 = 2.14
# 3.1 = 3.1
# 3.2 = 3.2
# 4.0 = 4.0
# 5.0 = 5.0
_version=5.0
#
#
# Character set encoding used to read and write JMeter XML files and CSV results
#
_file_encoding=UTF-8
#
#---------------------------------------------------------
#
# The following properties are used to create aliases
# [Must all start with capital letter]
#
AccessLogSampler=org.apache.jmeter.protocol.http.sampler.AccessLogSampler
AjpSampler=org.apache.jmeter.protocol.http.sampler.AjpSampler
AjpSamplerGui=org.apache.jmeter.protocol.http.control.gui.AjpSamplerGui
AnchorModifier=org.apache.jmeter.protocol.http.modifier.AnchorModifier
AnchorModifierGui=org.apache.jmeter.protocol.http.modifier.gui.AnchorModifierGui
Argument=org.apache.jmeter.config.Argument
Arguments=org.apache.jmeter.config.Arguments
ArgumentsPanel=org.apache.jmeter.config.gui.ArgumentsPanel
AssertionGui=org.apache.jmeter.assertions.gui.AssertionGui
AssertionVisualizer=org.apache.jmeter.visualizers.AssertionVisualizer
AuthManager=org.apache.jmeter.protocol.http.control.AuthManager
Authorization=org.apache.jmeter.protocol.http.control.Authorization
AuthPanel=org.apache.jmeter.protocol.http.gui.AuthPanel
BackendListener=org.apache.jmeter.visualizers.backend.BackendListener
BackendListenerGui=org.apache.jmeter.visualizers.backend.BackendListenerGui
BeanShellAssertion=org.apache.jmeter.assertions.BeanShellAssertion
BeanShellAssertionGui=org.apache.jmeter.assertions.gui.BeanShellAssertionGui
BeanShellListener=org.apache.jmeter.visualizers.BeanShellListener
BeanShellPostProcessor=org.apache.jmeter.extractor.BeanShellPostProcessor
BeanShellPreProcessor=org.apache.jmeter.modifiers.BeanShellPreProcessor
BeanShellSampler=org.apache.jmeter.protocol.java.sampler.BeanShellSampler
BeanShellSamplerGui=org.apache.jmeter.protocol.java.control.gui.BeanShellSamplerGui
BeanShellTimer=org.apache.jmeter.timers.BeanShellTimer
BoundaryExtractor=org.apache.jmeter.extractor.BoundaryExtractor
BoundaryExtractorGui=org.apache.jmeter.extractor.gui.BoundaryExtractorGui
BSFAssertion=org.apache.jmeter.assertions.BSFAssertion
BSFListener=org.apache.jmeter.visualizers.BSFListener
BSFPreProcessor=org.apache.jmeter.modifiers.BSFPreProcessor
BSFPostProcessor=org.apache.jmeter.extractor.BSFPostProcessor
BSFSampler=org.apache.jmeter.protocol.java.sampler.BSFSampler
BSFSamplerGui=org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui
BSFTimer=org.apache.jmeter.timers.BSFTimer
CacheManager=org.apache.jmeter.protocol.http.control.CacheManager
CacheManagerGui=org.apache.jmeter.protocol.http.gui.CacheManagerGui
CompareAssertion=org.apache.jmeter.assertions.CompareAssertion
ComparisonVisualizer=org.apache.jmeter.visualizers.ComparisonVisualizer
ConfigTestElement=org.apache.jmeter.config.ConfigTestElement
ConstantThroughputTimer=org.apache.jmeter.timers.ConstantThroughputTimer
ConstantTimer=org.apache.jmeter.timers.ConstantTimer
ConstantTimerGui=org.apache.jmeter.timers.gui.ConstantTimerGui
Cookie=org.apache.jmeter.protocol.http.control.Cookie
CookieManager=org.apache.jmeter.protocol.http.control.CookieManager
CookiePanel=org.apache.jmeter.protocol.http.gui.CookiePanel
CounterConfig=org.apache.jmeter.modifiers.CounterConfig
CriticalSectionController=org.apache.jmeter.control.CriticalSectionController
CriticalSectionControllerGui=org.apache.jmeter.control.gui.CriticalSectionControllerGui
CounterConfigGui=org.apache.jmeter.modifiers.gui.CounterConfigGui
CSVDataSet=org.apache.jmeter.config.CSVDataSet
DebugPostProcessor=org.apache.jmeter.extractor.DebugPostProcessor
DebugSampler=org.apache.jmeter.sampler.DebugSampler
# removed in 3.1, class was deleted in r1763837
DistributionGraphVisualizer=org.apache.jmeter.visualizers.DistributionGraphVisualizer
DNSCacheManager=org.apache.jmeter.protocol.http.control.DNSCacheManager
DNSCachePanel=org.apache.jmeter.protocol.http.gui.DNSCachePanel
DubboSample=io.github.ningyu.jmeter.plugin.dubbo.sample.DubboSample
DubboSampleGui=io.github.ningyu.jmeter.plugin.dubbo.gui.DubboSampleGui
DubboDefaultConfigGui=io.github.ningyu.jmeter.plugin.dubbo.gui.DubboDefaultConfigGui
DurationAssertion=org.apache.jmeter.assertions.DurationAssertion
DurationAssertionGui=org.apache.jmeter.assertions.gui.DurationAssertionGui
PreciseThroughputTimer=org.apache.jmeter.timers.poissonarrivals.PreciseThroughputTimer
# Should really have been defined as floatProp to agree with other properties
# No point changing this now
FloatProperty=org.apache.jmeter.testelement.property.FloatProperty
ForeachController=org.apache.jmeter.control.ForeachController
ForeachControlPanel=org.apache.jmeter.control.gui.ForeachControlPanel
FtpConfigGui=org.apache.jmeter.protocol.ftp.config.gui.FtpConfigGui
FTPSampler=org.apache.jmeter.protocol.ftp.sampler.FTPSampler
FtpTestSamplerGui=org.apache.jmeter.protocol.ftp.control.gui.FtpTestSamplerGui
GaussianRandomTimer=org.apache.jmeter.timers.GaussianRandomTimer
GaussianRandomTimerGui=org.apache.jmeter.timers.gui.GaussianRandomTimerGui
GenericController=org.apache.jmeter.control.GenericController
GraphAccumVisualizer=org.apache.jmeter.visualizers.GraphAccumVisualizer
GraphVisualizer=org.apache.jmeter.visualizers.GraphVisualizer
Header=org.apache.jmeter.protocol.http.control.Header
HeaderManager=org.apache.jmeter.protocol.http.control.HeaderManager
HeaderPanel=org.apache.jmeter.protocol.http.gui.HeaderPanel
HTMLAssertion=org.apache.jmeter.assertions.HTMLAssertion
HTMLAssertionGui=org.apache.jmeter.assertions.gui.HTMLAssertionGui
HTTPArgument=org.apache.jmeter.protocol.http.util.HTTPArgument
HTTPArgumentsPanel=org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel
HTTPFileArg=org.apache.jmeter.protocol.http.util.HTTPFileArg
HTTPFileArgs=org.apache.jmeter.protocol.http.util.HTTPFileArgs
HttpDefaultsGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
HtmlExtractor=org.apache.jmeter.extractor.HtmlExtractor
HtmlExtractorGui=org.apache.jmeter.extractor.gui.HtmlExtractorGui
# removed in r1039684, probably not released. Not present in r322831 or since.
#HttpGenericSampler=org.apache.jmeter.protocol.http.sampler.HttpGenericSampler
# removed in r1039684, probably not released. Not present in r322831 or since.
#HttpGenericSamplerGui=org.apache.jmeter.protocol.http.control.gui.HttpGenericSamplerGui
HttpMirrorControl=org.apache.jmeter.protocol.http.control.HttpMirrorControl
HttpMirrorControlGui=org.apache.jmeter.protocol.http.control.gui.HttpMirrorControlGui
# r397955 - removed test class. Keep as commented entry for info only.
#HTTPNullSampler=org.apache.jmeter.protocol.http.sampler.HTTPNullSampler
# Merge previous 2 HTTP samplers into one
HTTPSampler_=org.apache.jmeter.protocol.http.sampler.HTTPSampler
HTTPSampler2_=org.apache.jmeter.protocol.http.sampler.HTTPSampler2
HTTPSamplerProxy,HTTPSampler,HTTPSampler2=org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
# Merge GUIs
HttpTestSampleGui,HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui
#HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2
IfController=org.apache.jmeter.control.IfController
IfControllerPanel=org.apache.jmeter.control.gui.IfControllerPanel
IncludeController=org.apache.jmeter.control.IncludeController
IncludeControllerGui=org.apache.jmeter.control.gui.IncludeControllerGui
InterleaveControl=org.apache.jmeter.control.InterleaveControl
InterleaveControlGui=org.apache.jmeter.control.gui.InterleaveControlGui
JavaConfig=org.apache.jmeter.protocol.java.config.JavaConfig
JavaConfigGui=org.apache.jmeter.protocol.java.config.gui.JavaConfigGui
JavaSampler=org.apache.jmeter.protocol.java.sampler.JavaSampler
JavaTest=org.apache.jmeter.protocol.java.test.JavaTest
JavaTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui
JDBCDataSource=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
JDBCPostProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPostProcessor
JDBCPreProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPreProcessor
JDBCSampler=org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler
JMESPathAssertion=org.apache.jmeter.assertions.jmespath.JMESPathAssertion
JMESPathAssertionGui=org.apache.jmeter.assertions.jmespath.gui.JMESPathAssertionGui
JMESPathExtractor=org.apache.jmeter.extractor.json.jmespath.JMESPathExtractor
JMESPathExtractorGui=org.apache.jmeter.extractor.json.jmespath.gui.JMESPathExtractorGui
# Renamed to JMSSamplerGui; keep original entry for backwards compatibility
JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui
JMSProperties=org.apache.jmeter.protocol.jms.sampler.JMSProperties
JMSProperty=org.apache.jmeter.protocol.jms.sampler.JMSProperty
JMSPublisherGui=org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui
JMSSampler=org.apache.jmeter.protocol.jms.sampler.JMSSampler
JMSSamplerGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
JMSSubscriberGui=org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui
JSONPathAssertion=org.apache.jmeter.assertions.JSONPathAssertion
JSONPathAssertionGui=org.apache.jmeter.assertions.gui.JSONPathAssertionGui
JSONPostProcessor=org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
JSONPostProcessorGui=org.apache.jmeter.extractor.json.jsonpath.gui.JSONPostProcessorGui
# Removed in r545311 as Jndi no longer present; keep for compat.
JndiDefaultsGui=org.apache.jmeter.protocol.jms.control.gui.JndiDefaultsGui
JSR223Assertion=org.apache.jmeter.assertions.JSR223Assertion
JSR223Listener=org.apache.jmeter.visualizers.JSR223Listener
JSR223PostProcessor=org.apache.jmeter.extractor.JSR223PostProcessor
JSR223PreProcessor=org.apache.jmeter.modifiers.JSR223PreProcessor
JSR223Sampler=org.apache.jmeter.protocol.java.sampler.JSR223Sampler
JSR223Timer=org.apache.jmeter.timers.JSR223Timer
JUnitSampler=org.apache.jmeter.protocol.java.sampler.JUnitSampler
JUnitTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui
KeystoreConfig=org.apache.jmeter.config.KeystoreConfig
LDAPArgument=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument
LDAPArguments=org.apache.jmeter.protocol.ldap.config.gui.LDAPArguments
LDAPArgumentsPanel=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentsPanel
LdapConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapConfigGui
LdapExtConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapExtConfigGui
LDAPExtSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPExtSampler
LdapExtTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapExtTestSamplerGui
LDAPSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPSampler
LdapTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapTestSamplerGui
LogicControllerGui=org.apache.jmeter.control.gui.LogicControllerGui
LoginConfig=org.apache.jmeter.config.LoginConfig
LoginConfigGui=org.apache.jmeter.config.gui.LoginConfigGui
LoopController=org.apache.jmeter.control.LoopController
LoopControlPanel=org.apache.jmeter.control.gui.LoopControlPanel
MailerModel=org.apache.jmeter.reporters.MailerModel
MailerResultCollector=org.apache.jmeter.reporters.MailerResultCollector
MailerVisualizer=org.apache.jmeter.visualizers.MailerVisualizer
MailReaderSampler=org.apache.jmeter.protocol.mail.sampler.MailReaderSampler
MailReaderSamplerGui=org.apache.jmeter.protocol.mail.sampler.gui.MailReaderSamplerGui
MD5HexAssertion=org.apache.jmeter.assertions.MD5HexAssertion
MD5HexAssertionGUI=org.apache.jmeter.assertions.gui.MD5HexAssertionGUI
ModuleController=org.apache.jmeter.control.ModuleController
ModuleControllerGui=org.apache.jmeter.control.gui.ModuleControllerGui
MongoScriptSampler=org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler
MongoSourceElement=org.apache.jmeter.protocol.mongodb.config.MongoSourceElement
# removed in 3.2, class was deleted in r
MonitorHealthVisualizer=org.apache.jmeter.visualizers.MonitorHealthVisualizer
NamePanel=org.apache.jmeter.gui.NamePanel
BoltSampler=org.apache.jmeter.protocol.bolt.sampler.BoltSampler
BoltConnectionElement=org.apache.jmeter.protocol.bolt.config.BoltConnectionElement
ObsoleteGui=org.apache.jmeter.config.gui.ObsoleteGui
OnceOnlyController=org.apache.jmeter.control.OnceOnlyController
OnceOnlyControllerGui=org.apache.jmeter.control.gui.OnceOnlyControllerGui
# removed in 3.0, class was deleted in r1722962
ParamMask=org.apache.jmeter.protocol.http.modifier.ParamMask
# removed in 3.0, class was deleted in r1722757
ParamModifier=org.apache.jmeter.protocol.http.modifier.ParamModifier
# removed in 3.0, class was deleted in r1722757
ParamModifierGui=org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui
PoissonRandomTimer=org.apache.jmeter.timers.PoissonRandomTimer
PoissonRandomTimerGui=org.apache.jmeter.timers.gui.PoissonRandomTimerGui
PropertyControlGui=org.apache.jmeter.visualizers.PropertyControlGui
ProxyControl=org.apache.jmeter.protocol.http.proxy.ProxyControl
ProxyControlGui=org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui
PublisherSampler=org.apache.jmeter.protocol.jms.sampler.PublisherSampler
RandomControlGui=org.apache.jmeter.control.gui.RandomControlGui
RandomController=org.apache.jmeter.control.RandomController
RandomOrderController=org.apache.jmeter.control.RandomOrderController
RandomOrderControllerGui=org.apache.jmeter.control.gui.RandomOrderControllerGui
RandomVariableConfig=org.apache.jmeter.config.RandomVariableConfig
RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
RecordingController=org.apache.jmeter.protocol.http.control.RecordingController
# removed in r1039684, class was deleted in r580452
ReflectionThreadGroup=org.apache.jmeter.threads.ReflectionThreadGroup
RegexExtractor=org.apache.jmeter.extractor.RegexExtractor
RegexExtractorGui=org.apache.jmeter.extractor.gui.RegexExtractorGui
RegExUserParameters=org.apache.jmeter.protocol.http.modifier.RegExUserParameters
RegExUserParametersGui=org.apache.jmeter.protocol.http.modifier.gui.RegExUserParametersGui
RemoteListenerWrapper=org.apache.jmeter.samplers.RemoteListenerWrapper
RemoteSampleListenerWrapper=org.apache.jmeter.samplers.RemoteSampleListenerWrapper
RemoteTestListenerWrapper=org.apache.jmeter.samplers.RemoteTestListenerWrapper
RemoteThreadsListenerWrapper=org.apache.jmeter.threads.RemoteThreadsListenerWrapper
ResponseAssertion=org.apache.jmeter.assertions.ResponseAssertion
RespTimeGraphVisualizer=org.apache.jmeter.visualizers.RespTimeGraphVisualizer
ResultAction=org.apache.jmeter.reporters.ResultAction
ResultActionGui=org.apache.jmeter.reporters.gui.ResultActionGui
ResultCollector=org.apache.jmeter.reporters.ResultCollector
ResultSaver=org.apache.jmeter.reporters.ResultSaver
ResultSaverGui=org.apache.jmeter.reporters.gui.ResultSaverGui
RunTime=org.apache.jmeter.control.RunTime
RunTimeGui=org.apache.jmeter.control.gui.RunTimeGui
SampleSaveConfiguration=org.apache.jmeter.samplers.SampleSaveConfiguration
SampleTimeout=org.apache.jmeter.modifiers.SampleTimeout
SampleTimeoutGui=org.apache.jmeter.modifiers.gui.SampleTimeoutGui
SimpleConfigGui=org.apache.jmeter.config.gui.SimpleConfigGui
SimpleDataWriter=org.apache.jmeter.visualizers.SimpleDataWriter
SizeAssertion=org.apache.jmeter.assertions.SizeAssertion
SizeAssertionGui=org.apache.jmeter.assertions.gui.SizeAssertionGui
SMIMEAssertion=org.apache.jmeter.assertions.SMIMEAssertionTestElement
SMIMEAssertionGui=org.apache.jmeter.assertions.gui.SMIMEAssertionGui
SmtpSampler=org.apache.jmeter.protocol.smtp.sampler.SmtpSampler
SmtpSamplerGui=org.apache.jmeter.protocol.smtp.sampler.gui.SmtpSamplerGui
# removed in 3.2, class was deleted in r
SoapSampler=org.apache.jmeter.protocol.http.sampler.SoapSampler
# removed in 3.2, class was deleted in r
SoapSamplerGui=org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
# removed in 3.1, class was deleted in r1763837
SplineVisualizer=org.apache.jmeter.visualizers.SplineVisualizer
# Originally deleted in r397955 as class is obsolete; needed for compat.
SqlConfigGui=org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui
StaticHost=org.apache.jmeter.protocol.http.control.StaticHost
StatGraphVisualizer=org.apache.jmeter.visualizers.StatGraphVisualizer
StatVisualizer=org.apache.jmeter.visualizers.StatVisualizer
SubscriberSampler=org.apache.jmeter.protocol.jms.sampler.SubscriberSampler
SubstitutionElement=org.apache.jmeter.assertions.SubstitutionElement
Summariser=org.apache.jmeter.reporters.Summariser
SummariserGui=org.apache.jmeter.reporters.gui.SummariserGui
SummaryReport=org.apache.jmeter.visualizers.SummaryReport
SwitchController=org.apache.jmeter.control.SwitchController
SwitchControllerGui=org.apache.jmeter.control.gui.SwitchControllerGui
SyncTimer=org.apache.jmeter.timers.SyncTimer
SystemSampler=org.apache.jmeter.protocol.system.SystemSampler
SystemSamplerGui=org.apache.jmeter.protocol.system.gui.SystemSamplerGui
TableVisualizer=org.apache.jmeter.visualizers.TableVisualizer
TCPConfigGui=org.apache.jmeter.protocol.tcp.config.gui.TCPConfigGui
TCPSampler=org.apache.jmeter.protocol.tcp.sampler.TCPSampler
TCPSamplerGui=org.apache.jmeter.protocol.tcp.control.gui.TCPSamplerGui
TestAction=org.apache.jmeter.sampler.TestAction
TestActionGui=org.apache.jmeter.sampler.gui.TestActionGui
TestBeanGUI=org.apache.jmeter.testbeans.gui.TestBeanGUI
TestFragmentController=org.apache.jmeter.control.TestFragmentController
TestFragmentControllerGui=org.apache.jmeter.control.gui.TestFragmentControllerGui
TestPlan=org.apache.jmeter.testelement.TestPlan
TestPlanGui=org.apache.jmeter.control.gui.TestPlanGui
ThreadGroup=org.apache.jmeter.threads.ThreadGroup
ThreadGroupGui=org.apache.jmeter.threads.gui.ThreadGroupGui
PostThreadGroup=org.apache.jmeter.threads.PostThreadGroup
PostThreadGroupGui=org.apache.jmeter.threads.gui.PostThreadGroupGui
SetupThreadGroup=org.apache.jmeter.threads.SetupThreadGroup
SetupThreadGroupGui=org.apache.jmeter.threads.gui.SetupThreadGroupGui
ThroughputController=org.apache.jmeter.control.ThroughputController
ThroughputControllerGui=org.apache.jmeter.control.gui.ThroughputControllerGui
TransactionController=org.apache.jmeter.control.TransactionController
TransactionControllerGui=org.apache.jmeter.control.gui.TransactionControllerGui
TransactionSampler=org.apache.jmeter.control.TransactionSampler
UniformRandomTimer=org.apache.jmeter.timers.UniformRandomTimer
UniformRandomTimerGui=org.apache.jmeter.timers.gui.UniformRandomTimerGui
URLRewritingModifier=org.apache.jmeter.protocol.http.modifier.URLRewritingModifier
URLRewritingModifierGui=org.apache.jmeter.protocol.http.modifier.gui.URLRewritingModifierGui
UserParameterModifier=org.apache.jmeter.protocol.http.modifier.UserParameterModifier
UserParameterModifierGui=org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui
UserParameters=org.apache.jmeter.modifiers.UserParameters
UserParametersGui=org.apache.jmeter.modifiers.gui.UserParametersGui
ViewResultsFullVisualizer=org.apache.jmeter.visualizers.ViewResultsFullVisualizer
# removed in 3.0, class was deleted in r1722757
WebServiceSampler=org.apache.jmeter.protocol.http.sampler.WebServiceSampler
# removed in 3.0, class was deleted in r1722757
WebServiceSamplerGui=org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui
WhileController=org.apache.jmeter.control.WhileController
WhileControllerGui=org.apache.jmeter.control.gui.WhileControllerGui
WorkBench=org.apache.jmeter.testelement.WorkBench
WorkBenchGui=org.apache.jmeter.control.gui.WorkBenchGui
XMLAssertion=org.apache.jmeter.assertions.XMLAssertion
XMLAssertionGui=org.apache.jmeter.assertions.gui.XMLAssertionGui
XMLSchemaAssertion=org.apache.jmeter.assertions.XMLSchemaAssertion
XMLSchemaAssertionGUI=org.apache.jmeter.assertions.gui.XMLSchemaAssertionGUI
XPathAssertion=org.apache.jmeter.assertions.XPathAssertion
XPathAssertionGui=org.apache.jmeter.assertions.gui.XPathAssertionGui
XPath2Assertion=org.apache.jmeter.assertions.XPath2Assertion
XPath2AssertionGui=org.apache.jmeter.assertions.gui.XPath2AssertionGui
XPathExtractor=org.apache.jmeter.extractor.XPathExtractor
XPathExtractorGui=org.apache.jmeter.extractor.gui.XPathExtractorGui
XPath2Extractor=org.apache.jmeter.extractor.XPath2Extractor
XPath2ExtractorGui=org.apache.jmeter.extractor.gui.XPath2ExtractorGui
# Properties - all start with lower case letter and end with Prop
#
boolProp=org.apache.jmeter.testelement.property.BooleanProperty
collectionProp=org.apache.jmeter.testelement.property.CollectionProperty
doubleProp=org.apache.jmeter.testelement.property.DoubleProperty
elementProp=org.apache.jmeter.testelement.property.TestElementProperty
# see above - already defined as FloatProperty
#floatProp=org.apache.jmeter.testelement.property.FloatProperty
intProp=org.apache.jmeter.testelement.property.IntegerProperty
longProp=org.apache.jmeter.testelement.property.LongProperty
mapProp=org.apache.jmeter.testelement.property.MapProperty
objProp=org.apache.jmeter.testelement.property.ObjectProperty
stringProp=org.apache.jmeter.testelement.property.StringProperty
#
# Other - must start with a lower case letter (and not end with Prop)
# (otherwise they could clash with the initial set of aliases)
#
hashTree=org.apache.jorphan.collections.ListedHashTree
jmeterTestPlan=org.apache.jmeter.save.ScriptWrapper
sample=org.apache.jmeter.samplers.SampleResult
httpSample=org.apache.jmeter.protocol.http.sampler.HTTPSampleResult
statSample=org.apache.jmeter.samplers.StatisticalSampleResult
testResults=org.apache.jmeter.save.TestResultWrapper
assertionResult=org.apache.jmeter.assertions.AssertionResult
# removed in 3.2, class was deleted in r
monitorStats=org.apache.jmeter.visualizers.MonitorStats
sampleEvent=org.apache.jmeter.samplers.SampleEvent
#
# Converters to register. Must start line with '_'
# If the converter is a collection of subitems, set equal to "collection"
# If the converter needs to know the class mappings but is not a collection of
# subitems, set it equal to "mapping"
_org.apache.jmeter.protocol.http.sampler.HTTPSamplerBaseConverter=collection
_org.apache.jmeter.protocol.http.util.HTTPResultConverter=collection
_org.apache.jmeter.save.converters.BooleanPropertyConverter=
_org.apache.jmeter.save.converters.IntegerPropertyConverter=
_org.apache.jmeter.save.converters.LongPropertyConverter=
_org.apache.jmeter.save.converters.MultiPropertyConverter=collection
_org.apache.jmeter.save.converters.SampleEventConverter=
_org.apache.jmeter.save.converters.SampleResultConverter=collection
_org.apache.jmeter.save.converters.SampleSaveConfigurationConverter=collection
_org.apache.jmeter.save.converters.StringPropertyConverter=
_org.apache.jmeter.save.converters.HashTreeConverter=collection
_org.apache.jmeter.save.converters.TestElementConverter=collection
_org.apache.jmeter.save.converters.TestElementPropertyConverter=collection
_org.apache.jmeter.save.converters.TestResultWrapperConverter=collection
_org.apache.jmeter.save.ScriptWrapperConverter=mapping
#
# Remember to update the _version entry
#

View File

@ -0,0 +1,123 @@
# Class, property and value upgrade equivalences.
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
#
# Format is as follows --
# for renamed test element & GUI classes:
# old.class.Name=new.class.Name
# old.class.Name|guiClassName=new.class.Name
# (e.g. for ConfigTestElement)
#
# for renamed / deleted properties:
# class.Name/Old.propertyName=newPropertyName
# if newPropertyName is omitted, then property is deleted
#
# for renamed values:
# old.class.Name.old.propertyName/oldValue=newValue
#
org.apache.jmeter.protocol.http.config.gui.UrlConfigGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
org.apache.jmeter.assertions.Assertion=org.apache.jmeter.assertions.ResponseAssertion
org.apache.jmeter.protocol.http.sampler.HTTPSamplerFull=org.apache.jmeter.protocol.http.sampler.HTTPSampler
org.apache.jmeter.control.gui.RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
org.apache.jmeter.timers.gui.ConstantThroughputTimerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
org.apache.jmeter.timers.ConstantThroughputTimer/ConstantThroughputTimer.throughput=throughput
org.apache.jmeter.protocol.jdbc.control.gui.JdbcTestSampleGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler/JDBCSampler.query=query
#org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.JDBCSampler.dataSource/NULL=
# Convert DBconfig
org.apache.jmeter.protocol.jdbc.config.gui.DbConfigGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
org.apache.jmeter.config.ConfigTestElement|org.apache.jmeter.protocol.jdbc.config.gui.DbConfigGui=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.url=dbUrl
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.driver=driver
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.query=query
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/ConfigTestElement.username=username
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/ConfigTestElement.password=password
# Convert PoolConfig
org.apache.jmeter.protocol.jdbc.config.gui.PoolConfigGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
org.apache.jmeter.config.ConfigTestElement|org.apache.jmeter.protocol.jdbc.config.gui.PoolConfigGui=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.connections=
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.connPoolClass=
org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.maxuse=poolMax
# SQL Config
org.apache.jmeter.config.ConfigTestElement/JDBCSampler.query=query
org.apache.jmeter.protocol.http.control.Header/TestElement.name=Header.name
# Upgrade AccessLogSampler
org.apache.jmeter.protocol.http.control.gui.AccessLogSamplerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.log_file=logFile
org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.port=portString
#Is the following used now?
#org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.generator_class_name=
#Looks to be a new field
#filterClassName
org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.domain=domain
org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.parser_class_name=parserClassName
org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.image_parser=imageParsing
# Renamed class
org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
# These classes have been deleted; there's no defined replacement
org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui=org.apache.jmeter.config.gui.ObsoleteGui
org.apache.jmeter.protocol.jms.control.gui.JndiDefaultsGui=org.apache.jmeter.config.gui.ObsoleteGui
# Should probably map to something other than ObsoleteGui...
org.apache.jmeter.threads.ReflectionThreadGroup=org.apache.jmeter.config.gui.ObsoleteGui
# Convert BSFSamplerGui
org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.filename=filename
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.language=scriptLanguage
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.parameters=parameters
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.query=script
# Obsolete Http user Parameters modifier test element
# Note: ConfigTestElement is the test element associated with ObsoleteGui
org.apache.jmeter.protocol.http.modifier.UserParameterModifier=org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui=org.apache.jmeter.config.gui.ObsoleteGui
# Obsolete Graph Full Results listener
org.apache.jmeter.visualizers.GraphAccumVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
# removed in 3.0, class was deleted in r1722757
org.apache.jmeter.protocol.http.sampler.WebServiceSampler=org.apache.jmeter.config.ConfigTestElement
# removed in 3.0, class was deleted in r1722757
org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui=org.apache.jmeter.config.gui.ObsoleteGui
# removed in 3.0, class was deleted in r1722757
org.apache.jmeter.protocol.http.modifier.ParamModifier=org.apache.jmeter.config.ConfigTestElement
# removed in 3.0, class was deleted in r1722962
org.apache.jmeter.protocol.http.modifier.ParamMask=org.apache.jmeter.config.ConfigTestElement
# removed in 3.0, class was deleted in r1722757
org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui=org.apache.jmeter.config.gui.ObsoleteGui
# removed in 3.1, class was deleted in r1774947
org.apache.jmeter.visualizers.SplineVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
# removed in 3.1 class was deleted in r1763837
org.apache.jmeter.visualizers.DistributionGraphVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
# removed in 3.2 class was deleted in r1771608
org.apache.jmeter.visualizers.MonitorStats=org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.visualizers.MonitorHealthVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
# removed in 3.2 class was deleted in r1783280
org.apache.jmeter.protocol.http.sampler.HTTPSampler2=org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.protocol.http.sampler.SoapSampler=org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui=org.apache.jmeter.config.gui.ObsoleteGui

View File

@ -0,0 +1,147 @@
# Sample user.properties file
#
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
#---------------------------------------------------------------------------
# Classpath configuration
#---------------------------------------------------------------------------
#
# List of paths (separated by ;) to search for additional JMeter plugin classes,
# for example new GUI elements and samplers.
# A path item can either be a jar file or a directory.
# Any jar file in such a directory will be automatically included,
# jar files in sub directories are ignored.
# The given value is in addition to any jars found in the lib/ext directory.
# Do not use this for utility or plugin dependency jars.
#search_paths=/app1/lib;/app2/lib
# List of paths that JMeter will search for utility and plugin dependency classes.
# Use your platform path separator (java.io.File.pathSeparatorChar in Java) to separate multiple paths.
# A path item can either be a jar file or a directory.
# Any jar file in such a directory will be automatically included,
# jar files in sub directories are ignored.
# The given value is in addition to any jars found in the lib directory.
# All entries will be added to the class path of the system class loader
# and also to the path of the JMeter internal loader.
# Paths with spaces may cause problems for the JVM
#Example for windows (; separator)
#user.classpath=../classes;../lib;../app1/jar1.jar;../app2/jar2.jar
#Example for linux (:separator)
#user.classpath=../classes:../lib:../app1/jar1.jar:../app2/jar2.jar
# List of paths (separated by ;) that JMeter will search for utility
# and plugin dependency classes.
# A path item can either be a jar file or a directory.
# Any jar file in such a directory will be automatically included,
# jar files in sub directories are ignored.
# The given value is in addition to any jars found in the lib directory
# or given by the user.classpath property.
# All entries will be added to the path of the JMeter internal loader only.
# For plugin dependencies using plugin_dependency_paths should be preferred over
# user.classpath.
#plugin_dependency_paths=../dependencies/lib;../app1/jar1.jar;../app2/jar2.jar
#---------------------------------------------------------------------------
# Reporting configuration
#---------------------------------------------------------------------------
# Configure this property to change the report title
#jmeter.reportgenerator.report_title=Apache JMeter Dashboard
# Used to generate a report based on a date range if needed
# Default date format (from SimpleDateFormat Java API and Locale.ENGLISH)
#jmeter.reportgenerator.date_format=yyyyMMddHHmmss
# Date range start date using date_format property
#jmeter.reportgenerator.start_date=
# Date range end date using date_format property
#jmeter.reportgenerator.end_date=
# Change this parameter if you want to change the granularity of over time graphs.
#jmeter.reportgenerator.overall_granularity=60000
# Change this parameter if you want to change the granularity of Response time distribution
# Set to 100 ms by default
#jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=100
# Change this parameter if you want to keep only some samples.
# Regular Expression which Indicates which samples to keep for graphs and statistics generation.
# Empty value means no filtering
#jmeter.reportgenerator.sample_filter=
# Change this parameter if you want to override the APDEX satisfaction threshold.
#jmeter.reportgenerator.apdex_satisfied_threshold=500
# Change this parameter if you want to override the APDEX tolerance threshold.
#jmeter.reportgenerator.apdex_tolerated_threshold=1500
# Indicates which graph series are filtered (regular expression)
# In the below example we filter on Search and Order samples
# Note that the end of the pattern should always include (-success|-failure)?$
# TransactionsPerSecondGraphConsumer suffixes transactions with "-success" or "-failure" depending
# on the result
#jmeter.reportgenerator.exporter.html.series_filter=^(Search|Order)(-success|-failure)?$
# Indicates whether only controller samples are displayed on graphs that support it.
#jmeter.reportgenerator.exporter.html.show_controllers_only=false
# This property is used by menu item "Export transactions for report"
# It is used to select which transactions by default will be exported
#jmeter.reportgenerator.exported_transactions_pattern=[a-zA-Z0-9_\\-{}\\$\\.]*[-_][0-9]*
## Custom graph definition
#jmeter.reportgenerator.graph.custom_mm_hit.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer
#jmeter.reportgenerator.graph.custom_mm_hit.title=Graph Title
#jmeter.reportgenerator.graph.custom_mm_hit.property.set_Y_Axis=Response Time (ms)
#jmeter.reportgenerator.graph.custom_mm_hit.property.set_X_Axis=Over Time
#jmeter.reportgenerator.graph.custom_mm_hit.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
#jmeter.reportgenerator.graph.custom_mm_hit.property.setSampleVariableName=VarName
#jmeter.reportgenerator.graph.custom_mm_hit.property.setContentMessage=Message for graph point label
########################################################################
################## DISTRIBUTED TESTING CONFIGURATION ##################
########################################################################
# Type of keystore : JKS
#
#server.rmi.ssl.keystore.type=JKS
#
# Keystore file that contains private key
#
#server.rmi.ssl.keystore.file=rmi_keystore.jks
#
# Password of Keystore
#
#server.rmi.ssl.keystore.password=changeit
#
# Key alias
#
#server.rmi.ssl.keystore.alias=rmi
#
# Type of truststore : JKS
#
#server.rmi.ssl.truststore.type=JKS
#
# Keystore file that contains certificate
#
#server.rmi.ssl.truststore.file=rmi_keystore.jks
#
# Password of Trust store
#
#server.rmi.ssl.truststore.password=changeit
#
# Set this if you don't want to use SSL for RMI
#
#server.rmi.ssl.disable=false