Merge branch 'dev' of https://github.com/fit2cloudrd/metersphere-server into dev
This commit is contained in:
commit
68efed66fe
|
@ -1,15 +1,16 @@
|
||||||
package io.metersphere.api.jmeter;
|
package io.metersphere.api.jmeter;
|
||||||
|
|
||||||
import io.metersphere.commons.exception.MSException;
|
import io.metersphere.commons.exception.MSException;
|
||||||
import io.metersphere.commons.utils.CommonBeanFactory;
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
import io.metersphere.config.JmeterProperties;
|
import io.metersphere.config.JmeterProperties;
|
||||||
import io.metersphere.i18n.Translator;
|
import io.metersphere.i18n.Translator;
|
||||||
import org.apache.jmeter.save.SaveService;
|
import org.apache.jmeter.save.SaveService;
|
||||||
import org.apache.jmeter.util.JMeterUtils;
|
import org.apache.jmeter.util.JMeterUtils;
|
||||||
import org.apache.jorphan.collections.HashTree;
|
import org.apache.jorphan.collections.HashTree;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.ResourceUtils;
|
||||||
|
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
@ -24,8 +25,8 @@ public class JMeterService {
|
||||||
public void run(InputStream is) {
|
public void run(InputStream is) {
|
||||||
String JMETER_HOME = jmeterProperties.getHome();
|
String JMETER_HOME = jmeterProperties.getHome();
|
||||||
String JMETER_PROPERTIES = JMETER_HOME + "/bin/jmeter.properties";
|
String JMETER_PROPERTIES = JMETER_HOME + "/bin/jmeter.properties";
|
||||||
JMeterUtils.loadJMeterProperties(JMETER_PROPERTIES);
|
JMeterUtils.loadJMeterProperties(getPath(JMETER_PROPERTIES));
|
||||||
JMeterUtils.setJMeterHome(JMETER_HOME);
|
JMeterUtils.setJMeterHome(getPath(JMETER_HOME));
|
||||||
try {
|
try {
|
||||||
Object scriptWrapper = SaveService.loadElement(is);
|
Object scriptWrapper = SaveService.loadElement(is);
|
||||||
HashTree testPlan = getHashTree(scriptWrapper);
|
HashTree testPlan = getHashTree(scriptWrapper);
|
||||||
|
@ -37,9 +38,19 @@ public class JMeterService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashTree getHashTree(Object scriptWrapper) throws Exception {
|
private HashTree getHashTree(Object scriptWrapper) throws Exception {
|
||||||
Field field = scriptWrapper.getClass().getDeclaredField("testPlan");
|
Field field = scriptWrapper.getClass().getDeclaredField("testPlan");
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
return (HashTree) field.get(scriptWrapper);
|
return (HashTree) field.get(scriptWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getPath(String path) {
|
||||||
|
try {
|
||||||
|
return ResourceUtils.getURL(ResourceUtils.CLASSPATH_URL_PREFIX + path).getPath();
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
LogUtil.error("file not found: " + path, e);
|
||||||
|
MSException.throwException(Translator.get("api_file_not_found_error"));
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import io.metersphere.controller.request.ReportRequest;
|
||||||
import io.metersphere.controller.request.testcase.QueryTestCaseRequest;
|
import io.metersphere.controller.request.testcase.QueryTestCaseRequest;
|
||||||
import io.metersphere.controller.request.testplancase.QueryTestPlanCaseRequest;
|
import io.metersphere.controller.request.testplancase.QueryTestPlanCaseRequest;
|
||||||
import io.metersphere.dto.ReportDTO;
|
import io.metersphere.dto.ReportDTO;
|
||||||
|
import io.metersphere.dto.TestCaseDTO;
|
||||||
import io.metersphere.dto.TestPlanCaseDTO;
|
import io.metersphere.dto.TestPlanCaseDTO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@ -14,5 +15,5 @@ public interface ExtTestCaseMapper {
|
||||||
|
|
||||||
List<TestCase> getTestCaseNames(@Param("request") QueryTestCaseRequest request);
|
List<TestCase> getTestCaseNames(@Param("request") QueryTestCaseRequest request);
|
||||||
|
|
||||||
List<TestPlanCaseDTO> getTestPlanTestCases(@Param("request") QueryTestPlanCaseRequest request);
|
List<TestCaseDTO> list(@Param("request") QueryTestCaseRequest request);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,25 +20,37 @@
|
||||||
ORDER BY test_case.update_time DESC
|
ORDER BY test_case.update_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getTestPlanTestCases" resultType="io.metersphere.dto.TestPlanCaseDTO">
|
<select id="list" resultType="io.metersphere.dto.TestCaseDTO">
|
||||||
select t1.id as id, t1.plan_id as planId, t1.executor as executor, t1.status as status, t1.results as results, t1.create_time as createTime, t1.update_time updateTime,
|
select test_case.* from test_case
|
||||||
t2.id as caseId, t2.node_id as nodeId, t2.node_path as nodePath, t2.project_id as projectId, t2.name as name, t2.remark remark, t2.steps steps,
|
<where>
|
||||||
t2.type as type, t2.maintainer as maintainer, t2.priority as priority, t2.method as method, t2.prerequisite as prerequisite
|
<if test="request.name != null">
|
||||||
from test_plan_test_case as t1
|
and test_case.name like CONCAT('%', #{request.name},'%')
|
||||||
inner join test_case as t2 on
|
</if>
|
||||||
t1.plan_id = #{request.planId}
|
<if test="request.nodeIds != null and request.nodeIds.size() > 0">
|
||||||
<if test="request.nodeIds != null and request.nodeIds.size() > 0">
|
and test_case.node_id in
|
||||||
and t2.node_id in
|
<foreach collection="request.nodeIds" item="nodeId" separator="," open="(" close=")">
|
||||||
<foreach collection="request.nodeIds" open="(" close=")" separator="," item="nodeId">
|
#{nodeId}
|
||||||
#{nodeId}
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="request.projectId != null">
|
||||||
|
and test_case.project_id = #{request.projectId}
|
||||||
|
</if>
|
||||||
|
<if test="request.filters != null and request.filters.size() > 0">
|
||||||
|
<foreach collection="request.filters.entrySet()" index="key" item="values">
|
||||||
|
<if test="values != null and values.size() > 0">
|
||||||
|
and test_case.${key} in
|
||||||
|
<foreach collection="values" item="value" separator="," open="(" close=")">
|
||||||
|
#{value}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
<if test="request.orders != null and request.orders.size() > 0">
|
||||||
|
order by
|
||||||
|
<foreach collection="request.orders" separator="," item="order">
|
||||||
|
${order.name} ${order.type}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
and t1.case_id = t2.id
|
|
||||||
<if test="request.name != null">
|
|
||||||
and t2.name like CONCAT('%', #{request.name},'%')
|
|
||||||
</if>
|
|
||||||
<if test="request.executor != null">
|
|
||||||
and t1.executor = #{request.executor}
|
|
||||||
</if>
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
|
@ -1,6 +1,8 @@
|
||||||
package io.metersphere.base.mapper.ext;
|
package io.metersphere.base.mapper.ext;
|
||||||
|
|
||||||
|
import io.metersphere.controller.request.testplancase.QueryTestPlanCaseRequest;
|
||||||
import io.metersphere.dto.TestCaseReportStatusResultDTO;
|
import io.metersphere.dto.TestCaseReportStatusResultDTO;
|
||||||
|
import io.metersphere.dto.TestPlanCaseDTO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -10,4 +12,7 @@ public interface ExtTestPlanTestCaseMapper {
|
||||||
List<TestCaseReportStatusResultDTO> getReportMetric(@Param("planId") String planId);
|
List<TestCaseReportStatusResultDTO> getReportMetric(@Param("planId") String planId);
|
||||||
|
|
||||||
List<String> getExecutors(@Param("planId") String planId);
|
List<String> getExecutors(@Param("planId") String planId);
|
||||||
|
|
||||||
|
List<TestPlanCaseDTO> list(@Param("request") QueryTestPlanCaseRequest request);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,5 +19,41 @@
|
||||||
and plan_id = #{planId};
|
and plan_id = #{planId};
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="list" resultType="io.metersphere.dto.TestPlanCaseDTO">
|
||||||
|
select test_plan_test_case.*, test_case.*
|
||||||
|
from test_plan_test_case
|
||||||
|
inner join test_case on test_plan_test_case.case_id = test_case.id
|
||||||
|
<where>
|
||||||
|
<if test="request.name != null">
|
||||||
|
and test_plan_test_case.name like CONCAT('%', #{request.name},'%')
|
||||||
|
</if>
|
||||||
|
<if test="request.nodeIds != null and request.nodeIds.size() > 0">
|
||||||
|
and test_plan_test_case.node_id in
|
||||||
|
<foreach collection="request.nodeIds" item="nodeId" separator="," open="(" close=")">
|
||||||
|
#{nodeId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="request.planId != null">
|
||||||
|
and test_plan_test_case.plan_id = #{request.planId}
|
||||||
|
</if>
|
||||||
|
<if test="request.filters != null and request.filters.size() > 0">
|
||||||
|
<foreach collection="request.filters.entrySet()" index="key" item="values">
|
||||||
|
<if test="values != null and values.size() > 0">
|
||||||
|
and ${key} in
|
||||||
|
<foreach collection="values" item="value" separator="," open="(" close=")">
|
||||||
|
#{value}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
<if test="request.orders != null and request.orders.size() > 0">
|
||||||
|
order by
|
||||||
|
<foreach collection="request.orders" separator="," item="order">
|
||||||
|
test_plan_test_case.${order.name} ${order.type}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -8,6 +8,7 @@ import io.metersphere.commons.utils.Pager;
|
||||||
import io.metersphere.controller.request.testcase.QueryTestCaseRequest;
|
import io.metersphere.controller.request.testcase.QueryTestCaseRequest;
|
||||||
import io.metersphere.controller.request.testcase.TestCaseBatchRequest;
|
import io.metersphere.controller.request.testcase.TestCaseBatchRequest;
|
||||||
import io.metersphere.controller.request.testcase.TestPlanCaseBatchRequest;
|
import io.metersphere.controller.request.testcase.TestPlanCaseBatchRequest;
|
||||||
|
import io.metersphere.dto.TestCaseDTO;
|
||||||
import io.metersphere.excel.domain.ExcelResponse;
|
import io.metersphere.excel.domain.ExcelResponse;
|
||||||
import io.metersphere.service.TestCaseService;
|
import io.metersphere.service.TestCaseService;
|
||||||
import io.metersphere.user.SessionUtils;
|
import io.metersphere.user.SessionUtils;
|
||||||
|
@ -16,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RequestMapping("/test/case")
|
@RequestMapping("/test/case")
|
||||||
|
@ -26,7 +28,7 @@ public class TestCaseController {
|
||||||
TestCaseService testCaseService;
|
TestCaseService testCaseService;
|
||||||
|
|
||||||
@PostMapping("/list/{goPage}/{pageSize}")
|
@PostMapping("/list/{goPage}/{pageSize}")
|
||||||
public Pager<List<TestCaseWithBLOBs>> list(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody QueryTestCaseRequest request) {
|
public Pager<List<TestCaseDTO>> list(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody QueryTestCaseRequest request) {
|
||||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||||
return PageUtils.setPageInfo(page, testCaseService.listTestCase(request));
|
return PageUtils.setPageInfo(page, testCaseService.listTestCase(request));
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package io.metersphere.controller.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrderRequest {
|
||||||
|
private String name;
|
||||||
|
private String type;
|
||||||
|
}
|
|
@ -1,15 +1,21 @@
|
||||||
package io.metersphere.controller.request.testcase;
|
package io.metersphere.controller.request.testcase;
|
||||||
|
|
||||||
import io.metersphere.base.domain.TestCase;
|
import io.metersphere.base.domain.TestCase;
|
||||||
|
import io.metersphere.controller.request.OrderRequest;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class QueryTestCaseRequest extends TestCase {
|
public class QueryTestCaseRequest extends TestCase {
|
||||||
|
|
||||||
private List<String> nodeIds;
|
private List<String> nodeIds;
|
||||||
|
|
||||||
|
private List<OrderRequest> orders;
|
||||||
|
|
||||||
|
private Map<String, List<String>> filters;
|
||||||
|
|
||||||
private String planId;
|
private String planId;
|
||||||
|
|
||||||
private String workspaceId;
|
private String workspaceId;
|
||||||
|
|
|
@ -1,18 +1,22 @@
|
||||||
package io.metersphere.controller.request.testplancase;
|
package io.metersphere.controller.request.testplancase;
|
||||||
|
|
||||||
import io.metersphere.base.domain.TestCase;
|
|
||||||
import io.metersphere.base.domain.TestPlanTestCase;
|
import io.metersphere.base.domain.TestPlanTestCase;
|
||||||
|
import io.metersphere.controller.request.OrderRequest;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class QueryTestPlanCaseRequest extends TestPlanTestCase {
|
public class QueryTestPlanCaseRequest extends TestPlanTestCase {
|
||||||
|
|
||||||
private List<String> nodeIds;
|
private List<String> nodeIds;
|
||||||
|
|
||||||
|
private List<OrderRequest> orders;
|
||||||
|
|
||||||
|
private Map<String, List<String>> filters;
|
||||||
|
|
||||||
private String workspaceId;
|
private String workspaceId;
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package io.metersphere.dto;
|
||||||
|
|
||||||
|
import io.metersphere.base.domain.TestCaseWithBLOBs;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TestCaseDTO extends TestCaseWithBLOBs{
|
||||||
|
|
||||||
|
private String maintainerName;
|
||||||
|
|
||||||
|
public String getMaintainerName() {
|
||||||
|
return maintainerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaintainerName(String maintainerName) {
|
||||||
|
this.maintainerName = maintainerName;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,35 +1,13 @@
|
||||||
package io.metersphere.dto;
|
package io.metersphere.dto;
|
||||||
|
|
||||||
import io.metersphere.base.domain.TestCase;
|
|
||||||
import io.metersphere.base.domain.TestCaseWithBLOBs;
|
import io.metersphere.base.domain.TestCaseWithBLOBs;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
public class TestPlanCaseDTO extends TestCaseWithBLOBs {
|
public class TestPlanCaseDTO extends TestCaseWithBLOBs {
|
||||||
|
|
||||||
private String executor;
|
private String executor;
|
||||||
|
private String executorName;
|
||||||
private String status;
|
private String status;
|
||||||
private String results;
|
private String results;
|
||||||
|
|
||||||
public String getExecutor() {
|
|
||||||
return executor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExecutor(String executor) {
|
|
||||||
this.executor = executor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(String status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getResults() {
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setResults(String results) {
|
|
||||||
this.results = results;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,6 +311,7 @@ public class TestCaseNodeService {
|
||||||
} else {
|
} else {
|
||||||
pid = insertTestCaseNode(nodeName, pNode == null ? null : pNode.getId(), projectId, level);
|
pid = insertTestCaseNode(nodeName, pNode == null ? null : pNode.getId(), projectId, level);
|
||||||
pathMap.put(path.toString(), pid);
|
pathMap.put(path.toString(), pid);
|
||||||
|
level++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (pathIterator.hasNext()) {
|
while (pathIterator.hasNext()) {
|
||||||
|
@ -322,6 +323,7 @@ public class TestCaseNodeService {
|
||||||
} else {
|
} else {
|
||||||
pid = insertTestCaseNode(nextNodeName, pid, projectId, level);
|
pid = insertTestCaseNode(nextNodeName, pid, projectId, level);
|
||||||
pathMap.put(path.toString(), pid);
|
pathMap.put(path.toString(), pid);
|
||||||
|
level++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ public class TestCaseReportService {
|
||||||
|
|
||||||
QueryTestPlanCaseRequest request = new QueryTestPlanCaseRequest();
|
QueryTestPlanCaseRequest request = new QueryTestPlanCaseRequest();
|
||||||
request.setPlanId(planId);
|
request.setPlanId(planId);
|
||||||
List<TestPlanCaseDTO> testPlanTestCases = extTestCaseMapper.getTestPlanTestCases(request);
|
List<TestPlanCaseDTO> testPlanTestCases = extTestPlanTestCaseMapper.list(request);
|
||||||
|
|
||||||
Map<String, TestCaseReportModuleResultDTO> moduleResultMap = new HashMap<>();
|
Map<String, TestCaseReportModuleResultDTO> moduleResultMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import io.metersphere.commons.utils.LogUtil;
|
||||||
import io.metersphere.controller.request.testcase.QueryTestCaseRequest;
|
import io.metersphere.controller.request.testcase.QueryTestCaseRequest;
|
||||||
import io.metersphere.controller.request.testcase.TestCaseBatchRequest;
|
import io.metersphere.controller.request.testcase.TestCaseBatchRequest;
|
||||||
import io.metersphere.controller.request.testcase.TestPlanCaseBatchRequest;
|
import io.metersphere.controller.request.testcase.TestPlanCaseBatchRequest;
|
||||||
|
import io.metersphere.dto.TestCaseDTO;
|
||||||
import io.metersphere.excel.domain.ExcelErrData;
|
import io.metersphere.excel.domain.ExcelErrData;
|
||||||
import io.metersphere.excel.domain.ExcelResponse;
|
import io.metersphere.excel.domain.ExcelResponse;
|
||||||
import io.metersphere.excel.domain.TestCaseExcelData;
|
import io.metersphere.excel.domain.TestCaseExcelData;
|
||||||
|
@ -101,19 +102,8 @@ public class TestCaseService {
|
||||||
return testCaseMapper.deleteByPrimaryKey(testCaseId);
|
return testCaseMapper.deleteByPrimaryKey(testCaseId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TestCaseWithBLOBs> listTestCase(QueryTestCaseRequest request) {
|
public List<TestCaseDTO> listTestCase(QueryTestCaseRequest request) {
|
||||||
TestCaseExample testCaseExample = new TestCaseExample();
|
return extTestCaseMapper.list(request);
|
||||||
TestCaseExample.Criteria criteria = testCaseExample.createCriteria();
|
|
||||||
if ( StringUtils.isNotBlank(request.getName()) ) {
|
|
||||||
criteria.andNameLike("%" + request.getName() + "%");
|
|
||||||
}
|
|
||||||
if ( StringUtils.isNotBlank(request.getProjectId()) ) {
|
|
||||||
criteria.andProjectIdEqualTo(request.getProjectId());
|
|
||||||
}
|
|
||||||
if ( request.getNodeIds() != null && request.getNodeIds().size() > 0) {
|
|
||||||
criteria.andNodeIdIn(request.getNodeIds());
|
|
||||||
}
|
|
||||||
return testCaseMapper.selectByExampleWithBLOBs(testCaseExample);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,19 +2,25 @@ package io.metersphere.service;
|
||||||
|
|
||||||
import io.metersphere.base.domain.TestPlanTestCase;
|
import io.metersphere.base.domain.TestPlanTestCase;
|
||||||
import io.metersphere.base.domain.TestPlanTestCaseExample;
|
import io.metersphere.base.domain.TestPlanTestCaseExample;
|
||||||
|
import io.metersphere.base.domain.User;
|
||||||
import io.metersphere.base.mapper.TestPlanTestCaseMapper;
|
import io.metersphere.base.mapper.TestPlanTestCaseMapper;
|
||||||
import io.metersphere.base.mapper.ext.ExtTestCaseMapper;
|
import io.metersphere.base.mapper.ext.ExtTestCaseMapper;
|
||||||
|
import io.metersphere.base.mapper.ext.ExtTestPlanTestCaseMapper;
|
||||||
import io.metersphere.commons.constants.TestPlanTestCaseStatus;
|
import io.metersphere.commons.constants.TestPlanTestCaseStatus;
|
||||||
import io.metersphere.commons.utils.BeanUtils;
|
import io.metersphere.commons.utils.BeanUtils;
|
||||||
|
import io.metersphere.controller.request.member.QueryMemberRequest;
|
||||||
import io.metersphere.controller.request.testcase.TestPlanCaseBatchRequest;
|
import io.metersphere.controller.request.testcase.TestPlanCaseBatchRequest;
|
||||||
import io.metersphere.controller.request.testplancase.QueryTestPlanCaseRequest;
|
import io.metersphere.controller.request.testplancase.QueryTestPlanCaseRequest;
|
||||||
import io.metersphere.dto.TestPlanCaseDTO;
|
import io.metersphere.dto.TestPlanCaseDTO;
|
||||||
|
import io.metersphere.user.SessionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@ -24,10 +30,21 @@ public class TestPlanTestCaseService {
|
||||||
TestPlanTestCaseMapper testPlanTestCaseMapper;
|
TestPlanTestCaseMapper testPlanTestCaseMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
ExtTestCaseMapper extTestCaseMapper;
|
UserService userService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ExtTestPlanTestCaseMapper extTestPlanTestCaseMapper;
|
||||||
|
|
||||||
public List<TestPlanCaseDTO> getTestPlanCases(QueryTestPlanCaseRequest request) {
|
public List<TestPlanCaseDTO> getTestPlanCases(QueryTestPlanCaseRequest request) {
|
||||||
return extTestCaseMapper.getTestPlanTestCases(request);
|
List<TestPlanCaseDTO> list = extTestPlanTestCaseMapper.list(request);
|
||||||
|
QueryMemberRequest queryMemberRequest = new QueryMemberRequest();
|
||||||
|
queryMemberRequest.setWorkspaceId(SessionUtils.getCurrentWorkspaceId());
|
||||||
|
Map<String, String> userMap = userService.getMemberList(queryMemberRequest)
|
||||||
|
.stream().collect(Collectors.toMap(User::getId, User::getName));
|
||||||
|
list.forEach(item -> {
|
||||||
|
item.setExecutorName(userMap.get(item.getExecutor()));
|
||||||
|
});
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void editTestCase(TestPlanTestCase testPlanTestCase) {
|
public void editTestCase(TestPlanTestCase testPlanTestCase) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ mybatis.configuration.multiple-result-sets-enabled=true
|
||||||
mybatis.configuration.use-column-label=true
|
mybatis.configuration.use-column-label=true
|
||||||
mybatis.configuration.auto-mapping-behavior=full
|
mybatis.configuration.auto-mapping-behavior=full
|
||||||
mybatis.configuration.default-statement-timeout=25000
|
mybatis.configuration.default-statement-timeout=25000
|
||||||
|
mybatis.configuration.map-underscore-to-camel-case=true
|
||||||
|
|
||||||
logging.file.path=/opt/metersphere/logs/${spring.application.name}
|
logging.file.path=/opt/metersphere/logs/${spring.application.name}
|
||||||
|
|
||||||
|
@ -64,4 +65,4 @@ kafka.ssl.truststore-type=
|
||||||
|
|
||||||
# jmeter
|
# jmeter
|
||||||
jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.4
|
jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.4
|
||||||
jmeter.home=/opt/jmeter/apache-jmeter-5.2.1
|
jmeter.home=jmeter
|
|
@ -30,4 +30,5 @@ user_email_is_null=User email cannot be null
|
||||||
password_is_null=Password cannot be null
|
password_is_null=Password cannot be null
|
||||||
workspace_not_exists=Workspace is not exists
|
workspace_not_exists=Workspace is not exists
|
||||||
#api
|
#api
|
||||||
api_load_script_error="Load script error"
|
api_load_script_error="Load script error"
|
||||||
|
api_file_not_found_error="File not found"
|
|
@ -30,4 +30,5 @@ user_email_is_null=用户邮箱不能为空
|
||||||
password_is_null=密码不能为空
|
password_is_null=密码不能为空
|
||||||
workspace_not_exists=工作空间不存在
|
workspace_not_exists=工作空间不存在
|
||||||
#api
|
#api
|
||||||
api_load_script_error="读取脚本失败"
|
api_load_script_error="读取脚本失败"
|
||||||
|
api_file_not_found_error="文件未找到"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,429 @@
|
||||||
|
#---------------------------------------------------------
|
||||||
|
# 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
|
||||||
|
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
|
||||||
|
#
|
|
@ -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
|
|
@ -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
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<el-dialog :title="operationType == 'edit' ? ( readOnly ? $t('test_track.case.view_case') : $t('test_track.case.edit_case')) : $t('test_track.case.create')" :visible.sync="dialogFormVisible" width="65%">
|
<el-dialog :title="operationType == 'edit' ? ( readOnly ? $t('test_track.case.view_case') : $t('test_track.case.edit_case')) : $t('test_track.case.create')"
|
||||||
|
:visible.sync="dialogFormVisible" width="65%">
|
||||||
|
|
||||||
<el-form :model="form" :rules="rules" ref="caseFrom">
|
<el-form :model="form" :rules="rules" ref="caseFrom" v-loading="result.loading">
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8" :offset="1">
|
<el-col :span="8" :offset="1">
|
||||||
|
@ -13,13 +14,12 @@
|
||||||
:label="$t('test_track.case.name')"
|
:label="$t('test_track.case.name')"
|
||||||
:label-width="formLabelWidth"
|
:label-width="formLabelWidth"
|
||||||
prop="name">
|
prop="name">
|
||||||
<el-input :disabled="readOnly" v-model="form.name"></el-input>
|
<el-input class="case-name" :disabled="readOnly" v-model="form.name"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="11" :offset="2">
|
<el-col :span="11" :offset="2">
|
||||||
<el-form-item :label="$t('test_track.case.module')" :label-width="formLabelWidth" prop="module">
|
<el-form-item :label="$t('test_track.case.module')" :label-width="formLabelWidth" prop="module">
|
||||||
|
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.module"
|
v-model="form.module"
|
||||||
:disabled="readOnly"
|
:disabled="readOnly"
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in maintainerOptions"
|
v-for="item in maintainerOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.name"
|
||||||
:value="item.id">
|
:value="item.id">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
@ -173,6 +173,10 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<template v-slot:footer>
|
<template v-slot:footer>
|
||||||
|
<el-switch
|
||||||
|
v-model="isCreateContinue"
|
||||||
|
active-text="保存并继续创建">
|
||||||
|
</el-switch>
|
||||||
<ms-dialog-footer v-if="!readOnly"
|
<ms-dialog-footer v-if="!readOnly"
|
||||||
@cancel="dialogFormVisible = false"
|
@cancel="dialogFormVisible = false"
|
||||||
@confirm="saveCase"/>
|
@confirm="saveCase"/>
|
||||||
|
@ -196,6 +200,7 @@
|
||||||
components: {MsDialogFooter},
|
components: {MsDialogFooter},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
result: {},
|
||||||
dialogFormVisible: false,
|
dialogFormVisible: false,
|
||||||
form: {
|
form: {
|
||||||
name: '',
|
name: '',
|
||||||
|
@ -227,7 +232,8 @@
|
||||||
method :[{required: true, message: this.$t('test_track.case.input_method'), trigger: 'change'}]
|
method :[{required: true, message: this.$t('test_track.case.input_method'), trigger: 'change'}]
|
||||||
},
|
},
|
||||||
formLabelWidth: "120px",
|
formLabelWidth: "120px",
|
||||||
operationType: ''
|
operationType: '',
|
||||||
|
isCreateContinue: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -318,8 +324,12 @@
|
||||||
this.$warning(this.$t('test_track.case.input_name'));
|
this.$warning(this.$t('test_track.case.input_name'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.$post('/test/case/' + this.operationType, param, () => {
|
this.result = this.$post('/test/case/' + this.operationType, param, () => {
|
||||||
this.$success(this.$t('commons.save_success'));
|
this.$success(this.$t('commons.save_success'));
|
||||||
|
if (this.operationType == 'add' && this.isCreateContinue) {
|
||||||
|
this.form.name = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.dialogFormVisible = false;
|
this.dialogFormVisible = false;
|
||||||
this.$emit("refresh");
|
this.$emit("refresh");
|
||||||
});
|
});
|
||||||
|
@ -394,4 +404,12 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-switch {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-name {
|
||||||
|
width: 194px;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -8,18 +8,20 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-link type="primary" class="download-template"
|
<el-link type="primary" class="download-template"
|
||||||
href="/test/case/export/template">{{$t('test_track.case.import.download_template')}}</el-link></el-row>
|
href="/test/case/export/template">{{$t('test_track.case.import.download_template')}}</el-link></el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-upload
|
<el-upload
|
||||||
|
v-loading="isLoading"
|
||||||
|
element-loading-text="导入中"
|
||||||
|
element-loading-spinner="el-icon-loading"
|
||||||
class="upload-demo"
|
class="upload-demo"
|
||||||
:action="'/test/case/import/' + projectId"
|
:action="'/test/case/import/' + projectId"
|
||||||
:on-preview="handlePreview"
|
|
||||||
multiple
|
multiple
|
||||||
:limit="1"
|
:limit="1"
|
||||||
:on-exceed="handleExceed"
|
:on-exceed="handleExceed"
|
||||||
:beforeUpload="UploadValidate"
|
:beforeUpload="UploadValidate"
|
||||||
:on-success="handleSuccess"
|
:on-success="handleSuccess"
|
||||||
:on-error="handleError"
|
:on-error="handleError"
|
||||||
|
:show-file-list="false"
|
||||||
:file-list="fileList">
|
:file-list="fileList">
|
||||||
<template v-slot:trigger>
|
<template v-slot:trigger>
|
||||||
<el-button size="mini" type="success" plain>{{$t('test_track.case.import.click_upload')}}</el-button>
|
<el-button size="mini" type="success" plain>{{$t('test_track.case.import.click_upload')}}</el-button>
|
||||||
|
@ -27,7 +29,8 @@
|
||||||
<template v-slot:tip>
|
<template v-slot:tip>
|
||||||
<div class="el-upload__tip">{{$t('test_track.case.import.upload_limit')}}</div>
|
<div class="el-upload__tip">{{$t('test_track.case.import.upload_limit')}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-upload></el-row>
|
</el-upload>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -46,7 +49,6 @@
|
||||||
import ElUploadList from "element-ui/packages/upload/src/upload-list";
|
import ElUploadList from "element-ui/packages/upload/src/upload-list";
|
||||||
import MsTableButton from '../../../../components/common/components/MsTableButton';
|
import MsTableButton from '../../../../components/common/components/MsTableButton';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TestCaseImport",
|
name: "TestCaseImport",
|
||||||
components: {ElUploadList, MsTableButton},
|
components: {ElUploadList, MsTableButton},
|
||||||
|
@ -54,7 +56,8 @@
|
||||||
return {
|
return {
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
fileList: [],
|
fileList: [],
|
||||||
errList: []
|
errList: [],
|
||||||
|
isLoading: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -63,9 +66,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handlePreview(file) {
|
|
||||||
this.init();
|
|
||||||
},
|
|
||||||
handleExceed(files, fileList) {
|
handleExceed(files, fileList) {
|
||||||
this.$warning(this.$t('test_track.case.import.upload_limit_count'));
|
this.$warning(this.$t('test_track.case.import.upload_limit_count'));
|
||||||
},
|
},
|
||||||
|
@ -80,9 +80,12 @@
|
||||||
this.$warning(this.$t('test_track.case.import.upload_limit_size'));
|
this.$warning(this.$t('test_track.case.import.upload_limit_size'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
this.isLoading = true;
|
||||||
|
this.errList = [];
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
handleSuccess(response) {
|
handleSuccess(response) {
|
||||||
|
this.isLoading = false;
|
||||||
let res = response.data;
|
let res = response.data;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$success(this.$t('test_track.case.import.success'));
|
this.$success(this.$t('test_track.case.import.success'));
|
||||||
|
@ -94,6 +97,7 @@
|
||||||
this.fileList = [];
|
this.fileList = [];
|
||||||
},
|
},
|
||||||
handleError(err, file, fileList) {
|
handleError(err, file, fileList) {
|
||||||
|
this.isLoading = false;
|
||||||
this.$error(err.message);
|
this.$error(err.message);
|
||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
|
@ -102,7 +106,7 @@
|
||||||
},
|
},
|
||||||
open() {
|
open() {
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true;
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
<el-table
|
<el-table
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
|
@sort-change="sort"
|
||||||
|
@filter-change="filter"
|
||||||
@select-all="handleSelectAll"
|
@select-all="handleSelectAll"
|
||||||
@select="handleSelectionChange"
|
@select="handleSelectionChange"
|
||||||
@row-click="showDetail"
|
@row-click="showDetail"
|
||||||
|
@ -37,7 +39,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="priority"
|
prop="priority"
|
||||||
:filters="priorityFilters"
|
:filters="priorityFilters"
|
||||||
:filter-method="filter"
|
column-key="priority"
|
||||||
:label="$t('test_track.case.priority')"
|
:label="$t('test_track.case.priority')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
|
@ -47,7 +49,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="type"
|
prop="type"
|
||||||
:filters="typeFilters"
|
:filters="typeFilters"
|
||||||
:filter-method="filter"
|
column-key="type"
|
||||||
:label="$t('test_track.case.type')"
|
:label="$t('test_track.case.type')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
|
@ -56,8 +58,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="method"
|
prop="method"
|
||||||
|
column-key="method"
|
||||||
:filters="methodFilters"
|
:filters="methodFilters"
|
||||||
:filter-method="filter"
|
|
||||||
:label="$t('test_track.case.method')"
|
:label="$t('test_track.case.method')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
|
@ -72,7 +74,7 @@
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="updateTime"
|
prop="updateTime"
|
||||||
sortable
|
sortable="custom"
|
||||||
:label="$t('commons.update_time')"
|
:label="$t('commons.update_time')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
|
@ -113,6 +115,7 @@
|
||||||
import MsTableOperator from "../../../common/components/MsTableOperator";
|
import MsTableOperator from "../../../common/components/MsTableOperator";
|
||||||
import MsTableOperatorButton from "../../../common/components/MsTableOperatorButton";
|
import MsTableOperatorButton from "../../../common/components/MsTableOperatorButton";
|
||||||
import MsTableButton from "../../../common/components/MsTableButton";
|
import MsTableButton from "../../../common/components/MsTableButton";
|
||||||
|
import {humpToLine} from "../../../../../common/js/utils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TestCaseList",
|
name: "TestCaseList",
|
||||||
|
@ -222,9 +225,18 @@
|
||||||
this.selectIds.clear();
|
this.selectIds.clear();
|
||||||
this.$emit('refresh');
|
this.$emit('refresh');
|
||||||
},
|
},
|
||||||
filter(value, row, column) {
|
filter(filters) {
|
||||||
const property = column['property'];
|
if (!this.condition.filters) {
|
||||||
return row[property] === value;
|
this.condition.filters = {};
|
||||||
|
}
|
||||||
|
for(let filter in filters) {
|
||||||
|
if (filters[filter] && filters[filter].length > 0) {
|
||||||
|
this.condition.filters[filter] = filters[filter];
|
||||||
|
} else {
|
||||||
|
this.condition.filters[filter] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.initTableData();
|
||||||
},
|
},
|
||||||
showDetail(row, event, column) {
|
showDetail(row, event, column) {
|
||||||
this.$emit('testCaseDetail', row);
|
this.$emit('testCaseDetail', row);
|
||||||
|
@ -250,6 +262,29 @@
|
||||||
},
|
},
|
||||||
moveToNode() {
|
moveToNode() {
|
||||||
this.$emit('moveToNode', this.selectIds);
|
this.$emit('moveToNode', this.selectIds);
|
||||||
|
},
|
||||||
|
sort(column) {
|
||||||
|
column.prop = humpToLine(column.prop);
|
||||||
|
if (column.order == 'descending') {
|
||||||
|
column.order = 'desc';
|
||||||
|
} else {
|
||||||
|
column.order = 'asc';
|
||||||
|
}
|
||||||
|
if (!this.condition.orders) {
|
||||||
|
this.condition.orders = [];
|
||||||
|
}
|
||||||
|
let hasProp = false;
|
||||||
|
this.condition.orders.forEach(order => {
|
||||||
|
if (order.name == column.prop) {
|
||||||
|
order.type = column.order;
|
||||||
|
hasProp = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!hasProp) {
|
||||||
|
this.condition.orders.push({name: column.prop, type: column.order});
|
||||||
|
}
|
||||||
|
this.initTableData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
width="20%">
|
width="20%">
|
||||||
<el-select v-model="executor" :placeholder="$t('test_track.plan_view.select_executor')">
|
<el-select v-model="executor" :placeholder="$t('test_track.plan_view.select_executor')">
|
||||||
<el-option v-for="item in executorOptions" :key="item.id"
|
<el-option v-for="item in executorOptions" :key="item.id"
|
||||||
:label="item.id" :value="item.id"></el-option>
|
:label="item.name" :value="item.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<template v-slot:footer>
|
<template v-slot:footer>
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
<el-table
|
<el-table
|
||||||
@select-all="handleSelectAll"
|
@select-all="handleSelectAll"
|
||||||
|
@filter-change="filter"
|
||||||
|
@sort-change="sort"
|
||||||
@select="handleSelectionChange"
|
@select="handleSelectionChange"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
:data="tableData">
|
:data="tableData">
|
||||||
|
@ -37,7 +39,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="priority"
|
prop="priority"
|
||||||
:filters="priorityFilters"
|
:filters="priorityFilters"
|
||||||
:filter-method="filter"
|
column-key="priority"
|
||||||
:label="$t('test_track.case.priority')">
|
:label="$t('test_track.case.priority')">
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<priority-table-item :value="scope.row.priority" ref="priority"/>
|
<priority-table-item :value="scope.row.priority" ref="priority"/>
|
||||||
|
@ -47,7 +49,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="type"
|
prop="type"
|
||||||
:filters="typeFilters"
|
:filters="typeFilters"
|
||||||
:filter-method="filter"
|
column-key="type"
|
||||||
:label="$t('test_track.case.type')"
|
:label="$t('test_track.case.type')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
|
@ -58,7 +60,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="method"
|
prop="method"
|
||||||
:filters="methodFilters"
|
:filters="methodFilters"
|
||||||
:filter-method="filter"
|
column-key="method"
|
||||||
:label="$t('test_track.case.method')"
|
:label="$t('test_track.case.method')"
|
||||||
show-overflow-tooltip>
|
show-overflow-tooltip>
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
|
@ -67,14 +69,14 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="executor"
|
prop="executorName"
|
||||||
:label="$t('test_track.plan_view.executor')">
|
:label="$t('test_track.plan_view.executor')">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="status"
|
prop="status"
|
||||||
:filters="statusFilters"
|
:filters="statusFilters"
|
||||||
:filter-method="filter"
|
column-key="status"
|
||||||
:label="$t('test_track.plan_view.execute_result')">
|
:label="$t('test_track.plan_view.execute_result')">
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<status-table-item :value="scope.row.status"/>
|
<status-table-item :value="scope.row.status"/>
|
||||||
|
@ -125,7 +127,7 @@
|
||||||
import NodeBreadcrumb from '../../../common/NodeBreadcrumb';
|
import NodeBreadcrumb from '../../../common/NodeBreadcrumb';
|
||||||
|
|
||||||
import {TokenKey} from '../../../../../../common/js/constants';
|
import {TokenKey} from '../../../../../../common/js/constants';
|
||||||
import {tableFilter} from '../../../../../../common/js/utils';
|
import {humpToLine, tableFilter} from '../../../../../../common/js/utils';
|
||||||
import PriorityTableItem from "../../../common/tableItems/planview/PriorityTableItem";
|
import PriorityTableItem from "../../../common/tableItems/planview/PriorityTableItem";
|
||||||
import StatusTableItem from "../../../common/tableItems/planview/StatusTableItem";
|
import StatusTableItem from "../../../common/tableItems/planview/StatusTableItem";
|
||||||
import TypeTableItem from "../../../common/tableItems/planview/TypeTableItem";
|
import TypeTableItem from "../../../common/tableItems/planview/TypeTableItem";
|
||||||
|
@ -295,10 +297,6 @@
|
||||||
}
|
}
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
},
|
},
|
||||||
filter(value, row, column) {
|
|
||||||
const property = column['property'];
|
|
||||||
return row[property] === value;
|
|
||||||
},
|
|
||||||
openTestReport() {
|
openTestReport() {
|
||||||
this.$refs.testReporTtemplateList.open();
|
this.$refs.testReporTtemplateList.open();
|
||||||
},
|
},
|
||||||
|
@ -316,6 +314,42 @@
|
||||||
id = this.testPlan.reportId;
|
id = this.testPlan.reportId;
|
||||||
}
|
}
|
||||||
this.$refs.testCaseReportView.open(id);
|
this.$refs.testCaseReportView.open(id);
|
||||||
|
},
|
||||||
|
filter(filters) {
|
||||||
|
if (!this.condition.filters) {
|
||||||
|
this.condition.filters = {};
|
||||||
|
}
|
||||||
|
for(let filter in filters) {
|
||||||
|
if (filters[filter] && filters[filter].length > 0) {
|
||||||
|
this.condition.filters[filter] = filters[filter];
|
||||||
|
} else {
|
||||||
|
this.condition.filters[filter] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.initTableData();
|
||||||
|
},
|
||||||
|
sort(column) {
|
||||||
|
column.prop = humpToLine(column.prop);
|
||||||
|
if (column.order == 'descending') {
|
||||||
|
column.order = 'desc';
|
||||||
|
} else {
|
||||||
|
column.order = 'asc';
|
||||||
|
}
|
||||||
|
if (!this.condition.orders) {
|
||||||
|
this.condition.orders = [];
|
||||||
|
}
|
||||||
|
let hasProp = false;
|
||||||
|
this.condition.orders.forEach(order => {
|
||||||
|
if (order.name == column.prop) {
|
||||||
|
order.type = column.order;
|
||||||
|
hasProp = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!hasProp) {
|
||||||
|
this.condition.orders.push({name: column.prop, type: column.order});
|
||||||
|
}
|
||||||
|
this.initTableData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,3 +55,8 @@ export function mapToJson(strMap){
|
||||||
}
|
}
|
||||||
return JSON.stringify(obj);
|
return JSON.stringify(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 驼峰转换下划线
|
||||||
|
export function humpToLine(name) {
|
||||||
|
return name.replace(/([A-Z])/g,"_$1").toLowerCase();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue