test: Update test cases with new degrade mechanism in sentinel-demo-quarkus
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
parent
19db20f00d
commit
a5fe23ad63
|
|
@ -18,15 +18,16 @@ package com.alibaba.csp.sentinel.demo.quarkus;
|
|||
import com.alibaba.csp.sentinel.slots.block.RuleConstant;
|
||||
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
|
||||
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
|
||||
import com.alibaba.csp.sentinel.slots.block.degrade.circuitbreaker.CircuitBreakerStrategy;
|
||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
|
||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
||||
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
||||
import com.alibaba.csp.sentinel.slots.system.SystemRuleManager;
|
||||
|
||||
import io.quarkus.runtime.StartupEvent;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
import javax.enterprise.context.ApplicationScoped;
|
||||
import javax.enterprise.event.Observes;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
|
|
@ -39,31 +40,28 @@ public class AppLifecycleBean {
|
|||
|
||||
void onStart(@Observes StartupEvent ev) {
|
||||
LOGGER.info("The application is starting...");
|
||||
FlowRule rule = new FlowRule()
|
||||
.setCount(1)
|
||||
.setGrade(RuleConstant.FLOW_GRADE_QPS)
|
||||
.setResource("GET:/hello/txt")
|
||||
.setLimitApp("default")
|
||||
.as(FlowRule.class);
|
||||
FlowRuleManager.loadRules(Arrays.asList(rule));
|
||||
|
||||
SystemRule systemRule = new SystemRule();
|
||||
systemRule.setLimitApp("default");
|
||||
systemRule.setAvgRt(3000);
|
||||
SystemRuleManager.loadRules(Arrays.asList(systemRule));
|
||||
// Only for test here. Actually it's recommended to configure rules via data-source.
|
||||
FlowRule rule1 = new FlowRule()
|
||||
.setCount(1)
|
||||
.setGrade(RuleConstant.FLOW_GRADE_QPS)
|
||||
.setResource("GET:/hello/txt")
|
||||
.setLimitApp("default")
|
||||
.as(FlowRule.class);
|
||||
FlowRule rule2 = new FlowRule("greeting2")
|
||||
.setCount(1)
|
||||
.setGrade(RuleConstant.FLOW_GRADE_QPS)
|
||||
.as(FlowRule.class);
|
||||
FlowRuleManager.loadRules(Arrays.asList(rule1, rule2));
|
||||
|
||||
DegradeRule degradeRule1 = new DegradeRule("greeting1")
|
||||
.setCount(1)
|
||||
.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT)
|
||||
.setTimeWindow(10)
|
||||
.setMinRequestAmount(1);
|
||||
.setCount(1)
|
||||
.setGrade(CircuitBreakerStrategy.ERROR_COUNT.getType())
|
||||
.setTimeWindow(5)
|
||||
.setStatIntervalMs(10000)
|
||||
.setMinRequestAmount(1);
|
||||
|
||||
DegradeRule degradeRule2 = new DegradeRule("greeting2")
|
||||
.setCount(1)
|
||||
.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT)
|
||||
.setTimeWindow(10)
|
||||
.setMinRequestAmount(1);
|
||||
DegradeRuleManager.loadRules(Arrays.asList(degradeRule1, degradeRule2));
|
||||
DegradeRuleManager.loadRules(Arrays.asList(degradeRule1));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class GreetingService {
|
|||
return "hello " + name;
|
||||
}
|
||||
|
||||
public String greetingFallback(String name) {
|
||||
return "greetingFallback:" + name;
|
||||
public String greetingFallback(String name, Throwable t) {
|
||||
return "greetingFallback: " + t.getClass().getSimpleName();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
*/
|
||||
package com.alibaba.csp.sentinel.demo.quarkus;
|
||||
|
||||
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
|
||||
import com.alibaba.csp.sentinel.slots.clusterbuilder.ClusterBuilderSlot;
|
||||
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -35,71 +35,60 @@ public class GreetingResourceTest {
|
|||
@Test
|
||||
public void testSentinelJaxRsQuarkusAdapter() {
|
||||
given()
|
||||
.when().get("/hello/txt")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello"));
|
||||
.when().get("/hello/txt")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello"));
|
||||
given()
|
||||
.when().get("/hello/txt")
|
||||
.then()
|
||||
.statusCode(javax.ws.rs.core.Response.Status.TOO_MANY_REQUESTS.getStatusCode())
|
||||
.body(is("Blocked by Sentinel (flow limiting)"));
|
||||
.when().get("/hello/txt")
|
||||
.then()
|
||||
.statusCode(javax.ws.rs.core.Response.Status.TOO_MANY_REQUESTS.getStatusCode())
|
||||
.body(is("Blocked by Sentinel (flow limiting)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSentinelAnnotationQuarkusAdapter() {
|
||||
given()
|
||||
.when().get("/hello/fallback/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello a"));
|
||||
.when().get("/hello/fallback/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello a"));
|
||||
given()
|
||||
.when().get("/hello/fallback/b")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello b"));
|
||||
.when().get("/hello/fallback/b")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello b"));
|
||||
given()
|
||||
.when().get("/hello/fallback/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalDefaultFallback, ex:test sentinel fallback"));
|
||||
.when().get("/hello/fallback/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalDefaultFallback, ex:test sentinel fallback"));
|
||||
given()
|
||||
.when().get("/hello/fallback/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalBlockHandler, ex:null"));
|
||||
.when().get("/hello/fallback/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalDefaultFallback, ex:test sentinel fallback"));
|
||||
given()
|
||||
.when().get("/hello/fallback/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalBlockHandler, ex:null"));
|
||||
.when().get("/hello/fallback/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalBlockHandler, ex:null"));
|
||||
given()
|
||||
.when().get("/hello/fallback/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("globalBlockHandler, ex:null"));
|
||||
|
||||
given()
|
||||
.when().get("/hello/fallback2/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello a"));
|
||||
.when().get("/hello/fallback2/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello a"));
|
||||
given()
|
||||
.when().get("/hello/fallback2/b")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("hello b"));
|
||||
given()
|
||||
.when().get("/hello/fallback2/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("greetingFallback:degrade"));
|
||||
given()
|
||||
.when().get("/hello/fallback2/degrade")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("greetingFallback:degrade"));
|
||||
given()
|
||||
.when().get("/hello/fallback2/a")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("greetingFallback:a"));
|
||||
|
||||
.when().get("/hello/fallback2/b")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body(is("greetingFallback: FlowException"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue