【发布时间】:2018-09-14 11:56:51
【问题描述】:
我面临一个问题:我需要使用 citrus 变量的值作为 Java 函数的参数。我正在尝试使用上下文和行为,但似乎没有任何效果。
import com.playtika.hof.mgs.config.Context;
import org.springframework.http.HttpStatus;
import com.consol.citrus.http.client.HttpClient;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class CreateSessionBehavior extends BaseBehavior {
private HttpClient httpClient;
private Long uid;
private String sidVar;
private Context appContext;
public void apply() {
// Create Session ID
http().client(httpClient).send()
.post("/utils/hof/redis/sessions?uid=" + uid);
http().client(httpClient).receive().response(HttpStatus.OK)
.extractFromPayload("$.sid", sidVar).validationCallback((response, context) -> {
appContext.addValue(sidVar, context.getVariable(sidVar));
});
echo("New session in variable " + sidVar + ": ${" + sidVar + "}");
}
}
这里需要用到sidVar:
import com.playtika.hof.mgs.Kafkaproducer;
import com.playtika.hof.mgs.behavior.CreateSessionBehavior;
import com.playtika.hof.mgs.config.Context;
import org.testng.annotations.Test;
import com.consol.citrus.annotations.CitrusTest;
import com.playtika.hof.mgs.AbstractMGSTest;
@Test
public class TestPublishMessage extends AbstractMGSTest {
@CitrusTest(name = "Test Publish Message")
public void testPublishMessage() {
description("Publish messages on Kafka");
Context appContext = new Context();
applyBehavior(new CreateSessionBehavior(testServer(), getValidUid(0),
sessionName(0), appContext));
String sessionId = appContext.getValue(sidVar);
}
}
有没有办法返回 sidVar 变量,以便我可以在任何需要的地方使用它?
非常感谢。
【问题讨论】:
标签: java maven testng citrus-framework