提交 6cb493c9 authored 作者: 黄夏豪's avatar 黄夏豪

feat(base): 修复了JSONPATH无法执行的BUG

上级 adab7aee
...@@ -35,7 +35,7 @@ public class CheckPoint { ...@@ -35,7 +35,7 @@ public class CheckPoint {
/** /**
* JsonPath检查点 * JsonPath检查点
*/ */
private JsonPathCheckPoint jsonPathCheckPoint; private String jsonPathCheckPoint;
......
...@@ -71,15 +71,15 @@ public class CheckPointActuator implements Actuator { ...@@ -71,15 +71,15 @@ public class CheckPointActuator implements Actuator {
checkPointResult.addCheckPointResultDetail(noContainCheck(checkPoint.getNoContainCheckPoint(), httpResponseDetail.getResponseBody())); checkPointResult.addCheckPointResultDetail(noContainCheck(checkPoint.getNoContainCheckPoint(), httpResponseDetail.getResponseBody()));
} }
//JsonPath检查点检测 //JsonPath检查点检测
if (checkPoint.getJsonPathCheckPoint()!=null) { if (!StringUtils.isEmpty(checkPoint.getJsonPathCheckPoint())) {
Object jsonObject = Configuration.defaultConfiguration().jsonProvider().parse(httpResponseDetail.getResponseBody()); Object jsonObject = Configuration.defaultConfiguration().jsonProvider().parse(httpResponseDetail.getResponseBody());
checkPointResult.addCheckPointResultDetail(jsonPathCheck(checkPoint.getJsonPathCheckPoint(), jsonObject)); checkPointResult.addCheckPointResultDetail(jsonPathCheck(checkPoint.getJsonPathCheckPoint(), jsonObject));
} }
return checkPointResult; return checkPointResult;
} }
public CheckPointResultDetail jsonPathCheck(JsonPathCheckPoint jsonPathCheckPoint, Object jsonObject) { public CheckPointResultDetail jsonPathCheck(String jsonPathCheckPoint, Object jsonObject) {
String expression = jsonPathCheckPoint.getExpression(); String expression = jsonPathCheckPoint;
try { try {
expression = CompleteExpressionUtil.completeDynamicVariable( expression = CompleteExpressionUtil.completeDynamicVariable(
expression, expression,
...@@ -94,7 +94,7 @@ public class CheckPointActuator implements Actuator { ...@@ -94,7 +94,7 @@ public class CheckPointActuator implements Actuator {
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
return new CheckPointResultDetail( return new CheckPointResultDetail(
false, false,
String.format("JsonPath检查点,检查未通过,不能填写空的JsonPath,错误的jsonpath为:%s", jsonPathCheckPoint.getExpression()) String.format("JsonPath检查点,检查未通过,不能填写空的JsonPath,错误的jsonpath为:%s", jsonPathCheckPoint)
); );
} catch (PathNotFoundException e) { } catch (PathNotFoundException e) {
return new CheckPointResultDetail( return new CheckPointResultDetail(
......
...@@ -72,7 +72,7 @@ public class CaseActuator implements Actuator { ...@@ -72,7 +72,7 @@ public class CaseActuator implements Actuator {
} }
checkPoint.setContainCheckPoint(testCase.getContainCheckpoint()); checkPoint.setContainCheckPoint(testCase.getContainCheckpoint());
checkPoint.setNoContainCheckPoint(testCase.getNoContainCheckpoint()); checkPoint.setNoContainCheckPoint(testCase.getNoContainCheckpoint());
checkPoint.setJsonPathCheckPoint(JSON.parseObject(testCase.getJsonpathCheckpoint(), JsonPathCheckPoint.class)); checkPoint.setJsonPathCheckPoint(testCase.getJsonpathCheckpoint());
return checkPoint; return checkPoint;
} }
......
package org.matrix.actuators.sql; package org.matrix.actuators.sql;
import com.alibaba.fastjson.JSON;
import org.checkerframework.checker.units.qual.A;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.matrix.actuators.httpclient.HttpClientActuator; import org.matrix.actuators.httpclient.HttpClientActuator;
...@@ -17,11 +15,11 @@ import org.springframework.test.context.junit4.SpringRunner; ...@@ -17,11 +15,11 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class CaseActuatorTest { class CaseActuatorTest {
@Test @Test
public void test(){ void test(){
CaseActuator httpClientActuator = new CaseActuator( CaseActuator httpClientActuator = new CaseActuator(
1l, 1l,
1l 1l
...@@ -43,7 +41,9 @@ public class CaseActuatorTest { ...@@ -43,7 +41,9 @@ public class CaseActuatorTest {
testCase.setType(1); testCase.setType(1);
testCase.setDetail(json); testCase.setDetail(json);
testCase.setAbnormalCheckpoint(1); testCase.setAbnormalCheckpoint(1);
testCase.setContainCheckpoint(""); testCase.setContainCheckpoint("张三,李四");
testCase.setNoContainCheckpoint("张三,李四");
testCase.setJsonpathCheckpoint("contains({$..category},${componentName}[0])");
TestCaseExecuteResult testCaseExecuteResult = httpClientActuator.executeTestCase(testCase); TestCaseExecuteResult testCaseExecuteResult = httpClientActuator.executeTestCase(testCase);
System.out.println(testCaseExecuteResult); System.out.println(testCaseExecuteResult);
......
...@@ -12,10 +12,10 @@ import org.springframework.test.context.junit4.SpringRunner; ...@@ -12,10 +12,10 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class HttpClientActuatorTest { class HttpClientActuatorTest {
@Test @Test
public void test(){ void test(){
HttpClientActuator httpClientActuator = new HttpClientActuator( HttpClientActuator httpClientActuator = new HttpClientActuator(
new HttpRequestConfig(), new HttpRequestConfig(),
1l, 1l,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论