fix(接口定义): 修复case高级搜索执行结果提示异常的缺陷

--bug=1018469 --user=王孝刚 【接口测试】接口定义高级搜索-执行结果-不属于筛选提示异常
https://www.tapd.cn/55049933/s/1269122
This commit is contained in:
wxg0103 2022-10-20 11:37:17 +08:00 committed by wxg0103
parent b728671136
commit 28813ab88b
3 changed files with 24 additions and 15 deletions

View File

@ -114,13 +114,24 @@
<foreach collection="${object}.value" item="v" separator="," open="(" close=")"> <foreach collection="${object}.value" item="v" separator="," open="(" close=")">
#{v} #{v}
</foreach> </foreach>
<if test="${object}.value.contains(''.toString()) or ${object}.value.contains('PENDING'.toString())">
or t1.status is null or t1.status = ''
</if>
<if test="${condition}.exec_result != null">
)
</if>
</when> </when>
<when test='${object}.operator == "not in"'> <when test='${object}.operator == "not in"'>
not in not in
<foreach collection="${object}.value" item="v" separator="," open="(" close=")"> <foreach collection="${object}.value" item="v" separator="," open="(" close=")">
#{v} #{v}
</foreach> </foreach>
<if test="${condition}.exec_result != null and (${object}.value.contains(''.toString()) or ${object}.value.contains('PENDING'.toString()))">
and t1.status is not null and t1.status != ''
</if>
<if test="${condition}.exec_result != null and !${object}.value.contains('PENDING'.toString())">
or t1.status is null or t1.status = ''
</if>
<if test="${condition}.exec_result != null"> <if test="${condition}.exec_result != null">
) )
</if> </if>
@ -228,14 +239,10 @@
</include> </include>
</if> </if>
<if test="${condition}.exec_result != null"> <if test="${condition}.exec_result != null">
and (t3.status and (t1.status
<include refid="condition"> <include refid="condition">
<property name="object" value="${condition}.exec_result"/> <property name="object" value="${condition}.exec_result"/>
</include> </include>
<if test="${condition}.exec_result.value.contains(''.toString()) or ${condition}.exec_result.value.contains('PENDING'.toString())">
or t3.status is null or t3.status = ''
</if>
)
</if> </if>
</sql> </sql>
@ -318,10 +325,10 @@
<select id="list" resultType="io.metersphere.api.dto.definition.ApiTestCaseResult"> <select id="list" resultType="io.metersphere.api.dto.definition.ApiTestCaseResult">
SELECT SELECT
t1.*, t1.*,
t2.STATUS AS execResult, t2.status AS execResult,
t2.create_time AS execTime, t2.create_time AS execTime,
u2.NAME AS createUser, u2.name AS createUser,
u1.NAME AS updateUser, u1.name AS updateUser,
a.method AS apiMethod a.method AS apiMethod
FROM FROM
api_test_case t1 api_test_case t1
@ -382,12 +389,11 @@
a.path, a.path,
a.protocol, a.protocol,
t1.tags, t1.tags,
t1.status, t1.status AS execResult,
t3.status AS execResult,
t1.last_result_id AS lastResultId, t1.last_result_id AS lastResultId,
project.NAME AS project_name, project.NAME AS project_name,
t1.delete_time, t1.delete_time,
deleteUser.NAME AS deleteUser, deleteUser.name AS deleteUser,
project_version.NAME AS version_name project_version.NAME AS version_name
FROM FROM
api_test_case t1 api_test_case t1

View File

@ -121,7 +121,8 @@
:field="item" :field="item"
:fields-width="fieldsWidth" :fields-width="fieldsWidth"
min-width="120px" min-width="120px"
:label="$t('test_track.plan_view.execute_result')"> :label="$t('test_track.plan_view.execute_result')"
v-if="!trashEnable">
<template v-slot:default="scope"> <template v-slot:default="scope">
<el-link @click="getExecResult(scope.row)" <el-link @click="getExecResult(scope.row)"
:disabled="!scope.row.execResult || scope.row.execResult==='PENDING'"> :disabled="!scope.row.execResult || scope.row.execResult==='PENDING'">
@ -320,7 +321,7 @@ import ThreadGroup from "@/business/definition/components/jmeter/components/thre
import {parseEnvironment} from "@/business/environment/model/EnvironmentModel"; import {parseEnvironment} from "@/business/environment/model/EnvironmentModel";
import MsTableHeaderSelectPopover from "metersphere-frontend/src/components/table/MsTableHeaderSelectPopover"; import MsTableHeaderSelectPopover from "metersphere-frontend/src/components/table/MsTableHeaderSelectPopover";
import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar"; import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar";
import {API_CASE_CONFIGS} from "metersphere-frontend/src/components/search/search-components"; import {API_CASE_CONFIGS, API_CASE_CONFIGS_TRASH} from "metersphere-frontend/src/components/search/search-components";
import { import {
_filter, _filter,
_sort, _sort,
@ -382,7 +383,7 @@ export default {
fields: getCustomTableHeader('API_CASE', undefined), fields: getCustomTableHeader('API_CASE', undefined),
fieldsWidth: getCustomTableWidth('API_CASE'), fieldsWidth: getCustomTableWidth('API_CASE'),
condition: { condition: {
components: API_CASE_CONFIGS components: this.trashEnable ? API_CASE_CONFIGS_TRASH : API_CASE_CONFIGS
}, },
selectCase: {}, selectCase: {},
result: false, result: false,

View File

@ -821,6 +821,8 @@ export const API_DEFINITION_CONFIGS_TRASH = [ID, NAME, API_METHOD, API_PATH, API
export const API_CASE_CONFIGS = [ID, NAME, PRIORITY, TAGS, API_CASE_RESULT, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, API_PATH]; export const API_CASE_CONFIGS = [ID, NAME, PRIORITY, TAGS, API_CASE_RESULT, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, API_PATH];
export const API_CASE_CONFIGS_TRASH = [ID, NAME, PRIORITY, TAGS, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, API_PATH];
export const API_SCENARIO_CONFIGS = [ID, NAME, PRIORITY, TAGS, API_SCENARIO_RESULT, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, STEP_COUNT, SCENARIO_MODULE_TREE, API_STATUS]; export const API_SCENARIO_CONFIGS = [ID, NAME, PRIORITY, TAGS, API_SCENARIO_RESULT, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, STEP_COUNT, SCENARIO_MODULE_TREE, API_STATUS];
export const API_SCENARIO_CONFIGS_TRASH = [ID, NAME, PRIORITY, TAGS, API_SCENARIO_RESULT, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, STEP_COUNT, SCENARIO_MODULE_TREE, API_STATUS_TRASH]; export const API_SCENARIO_CONFIGS_TRASH = [ID, NAME, PRIORITY, TAGS, API_SCENARIO_RESULT, UPDATE_TIME, CREATE_TIME, CREATOR, FOLLOW_PEOPLE, STEP_COUNT, SCENARIO_MODULE_TREE, API_STATUS_TRASH];