Commit 6b74fed2 authored by 黎博's avatar 黎博

Merge branch 'auto'

去掉Testcase和SceneTestcase里的variables
parents 6602c0b2 15bb748e
......@@ -56,8 +56,8 @@ public class TestReportController {
* @return
*/
@GetMapping("/scene/batch/list")
public JsonResult getSceneTestcaseReportBatchList(String namespace, Integer projectId, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
IPage<Map<String, Object>> sceneTestcaseReportIPage = sceneTestcaseReportService.getSceneTestcaseReportGroupByBatch(namespace, projectId, pageNum, pageSize);
public JsonResult getSceneTestcaseReportBatchList(String namespace, Integer projectId, Integer sceneId, String sceneName, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
IPage<Map<String, Object>> sceneTestcaseReportIPage = sceneTestcaseReportService.getSceneTestcaseReportGroupByBatch(namespace, projectId, sceneId, sceneName, pageNum, pageSize);
Map<String, Object> map = new HashMap<>();
map.put("total", sceneTestcaseReportIPage.getTotal());
map.put("list", sceneTestcaseReportIPage.getRecords());
......@@ -119,6 +119,22 @@ public class TestReportController {
sceneTestcaseReportQueryWrapper.eq("namespace", namespace);
sceneTestcaseReportQueryWrapper.eq("batch", batch);
List<SceneTestcaseReport> sceneTestcaseReports = sceneTestcaseReportService.list(sceneTestcaseReportQueryWrapper);
return JsonResult.buildSuccessResult(sceneTestcaseReports);
Map<String, Object> map = new HashMap<>();
int total = sceneTestcaseReports.size();
int pass = 0;
int fail = 0;
for (SceneTestcaseReport sceneTestcaseReport: sceneTestcaseReports) {
String status = sceneTestcaseReport.getStatus();
if (status.equals("pass")) {
pass += 1;
} else if (status.equals("fail")) {
fail += 1;
}
}
map.put("total", total);
map.put("pass", pass);
map.put("fail", fail);
map.put("list", sceneTestcaseReports);
return JsonResult.buildSuccessResult(map);
}
}
......@@ -24,7 +24,6 @@ public class SceneTestcase {
private String postAction;
private String headers;
private String parameters;
private String variables;
private String extract;
private String validate;
private Integer sequence;
......
......@@ -24,7 +24,7 @@ public class Testcase {
private String postAction;
private String headers;
private String parameters;
private String variables;
// private String variables;
private String extract;
private String validate;
private Integer moduleId;
......
......@@ -7,5 +7,5 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.Map;
public interface SceneTestcaseReportMapper extends BaseMapper<SceneTestcaseReport> {
IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, IPage<Map<String, Object>> page);
IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer sceneId, String sceneName, IPage<Map<String, Object>> page);
}
......@@ -10,6 +10,8 @@ public interface AutoUtilsService {
Map<String, String> replaceParameters(String parameters, String variables, UUID uuid);
Map<String, String> replaceVariables(String parameters, UUID uuid);
boolean extractResponse(String response, String extract, UUID uuid);
boolean assertResponse(String response, List<Map> validateList);
......
......@@ -10,5 +10,5 @@ public interface SceneTestcaseReportService extends IService<SceneTestcaseReport
Map<String, Object> getSceneTestcaseReportListByNamespace(String namespace, Integer moduleId, Integer pageNum, Integer pageSize);
IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer pageNum, Integer pageSize);
IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer sceneId, String sceneName, Integer pageNum, Integer pageSize);
}
......@@ -63,6 +63,25 @@ public class AutoUtilsServiceImpl implements AutoUtilsService {
return parameterMap;
}
/**
* 参数替换-新
* @param parameters headers或者parameters
* @param uuid 唯一标识
*/
@Override
public Map<String, String> replaceVariables(String parameters, UUID uuid) {
Map<String, String> parameterMap = JSON.parseObject(parameters, Map.class);
log.info("替换之前的参数:{}", parameterMap);
for (String key: parameterMap.keySet()) {
String value = parameterMap.get(key);
if (value.startsWith("$")) {
parameterMap.put(key, redisUtils.get(uuid + "_" + value.substring(1)).toString());
}
}
log.info("替换之后的参数:{}", parameterMap);
return parameterMap;
}
/**
* 将响应中的值解析出来并存储到redis值
* @param response 响应json
......
......@@ -40,8 +40,8 @@ public class SceneTestcaseReportServiceImpl extends ServiceImpl<SceneTestcaseRep
}
@Override
public IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer pageNum, Integer pageSize) {
public IPage<Map<String, Object>> getSceneTestcaseReportGroupByBatch(String namespace, Integer projectId, Integer sceneId, String sceneName, Integer pageNum, Integer pageSize) {
IPage<Map<String, Object>> page = new Page<>(pageNum, pageSize);
return sceneTestcaseReportMapper.getSceneTestcaseReportGroupByBatch(namespace, projectId, page);
return sceneTestcaseReportMapper.getSceneTestcaseReportGroupByBatch(namespace, projectId, sceneId, sceneName, page);
}
}
......@@ -86,18 +86,23 @@ public class SceneTestcaseServiceImpl extends ServiceImpl<SceneTestcaseMapper, S
String interfaceName = anInterface.getName();
String headers = sceneTestcase.getHeaders();
String parameters = sceneTestcase.getParameters();
String variables = sceneTestcase.getVariables();
String extract = sceneTestcase.getExtract();
String validate = sceneTestcase.getValidate();
Map<String, String> parameterMap = JSON.parseObject(parameters, Map.class);
Map<String, String> headersMap = JSON.parseObject(headers, Map.class);
// 使用变量替换headers
if (variables != null && !variables.isEmpty() && headers != null && !headers.isEmpty()) {
headersMap = autoUtilsService.replaceHeaders(headers, variables, uuid);
// if (variables != null && !variables.isEmpty() && headers != null && !headers.isEmpty()) {
// headersMap = autoUtilsService.replaceHeaders(headers, variables, uuid);
// }
if (headers != null && !headers.isEmpty()) {
headersMap = autoUtilsService.replaceVariables(headers, uuid);
}
// 使用变量替换参数
if (variables != null && !variables.isEmpty() && parameters != null && !parameters.isEmpty()) {
parameterMap = autoUtilsService.replaceParameters(parameters, variables, uuid);
// if (variables != null && !variables.isEmpty() && parameters != null && !parameters.isEmpty()) {
// parameterMap = autoUtilsService.replaceParameters(parameters, variables, uuid);
// }
if (parameters != null && !parameters.isEmpty()) {
parameterMap = autoUtilsService.replaceVariables(parameters, uuid);
}
// 创建断言列表
List<Map> validateList = new ArrayList<>();
......
......@@ -68,7 +68,7 @@ public class TestcaseServiceImpl extends ServiceImpl<TestcaseMapper, Testcase> i
String headers = testcase.getHeaders();
String parameters = testcase.getParameters();
String testcaseName = testcase.getName();
String variables = testcase.getVariables();
// String variables = testcase.getVariables();
String extract = testcase.getExtract();
String validate = testcase.getValidate();
// 参数准备
......
......@@ -3,14 +3,31 @@
<mapper namespace="cn.qg.holmes.mapper.auto.SceneTestcaseReportMapper">
<select id="getSceneTestcaseReportGroupByBatch" resultType="java.util.Map">
SELECT st.`scene_id` as sceneId, st.`batch`, st.`namespace`, st.`project_id` as projectId, pro.`name` as projectName, st.`create_time` as createTime from `scene_testcase_report` st
left join `auto_project` pro on st.`project_id` = pro.`id` WHERE 1=1
SELECT st.`scene_id` as sceneId,
st.`batch`,
st.`namespace`,
st.`project_id` as projectId,
pro.`name` as projectName,
sc.`name` as sceneName,
st.`create_time` as createTime
FROM `scene_testcase_report` st
INNER JOIN `auto_project` pro
ON st.`project_id` = pro.`id`
INNER JOIN `scene` sc
ON st.`scene_id` = sc.id
WHERE 1=1
<if test="projectId != null and projectId !=''">
AND st.`project_id` = #{projectId}
AND st.`project_id` = #{projectId}
</if>
<if test="namespace != null and namespace != ''">
AND st.`namespace` = #{namespace}
</if>
<if test="sceneId != null and sceneId != ''">
AND st.`scene_id` = #{sceneId}
</if>
<if test="sceneName != null and sceneName != ''">
AND sc.`name` LIKE CONCAT('%', #{sceneName}, '%')
</if>
GROUP BY st.`batch`
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment