在Citrus中,您可以使用来在整个测试套件之前执行 *** 作
TestDesignerBeforeSuiteSupport。像这样:
public class SetupAuthTokenBeforeSuite extends TestDesignerBeforeSuiteSupport { @Override public void beforeSuite(TestDesigner designer) { designer.echo("Setting up authentication token"); designer.http() .client(HttpTqaClient) .send() ... designer.http() .client(HttpTqaClient) .receive() .response(HttpStatus.OK) .messageType(MessageType.JSON) .extractFromHeader("Authorization", "header_token") .extractFromPayload("$.id_token", "payload_token"); designer.action(new AbstractTestAction() { @Override public void doExecute(TestContext testContext) { testContext.getGlobalVariables().put("global_auth_token", "${payload_token}"); } }); }}
无论您运行什么测试或从您的测试套件中进行多少测试,Citrus始终会选择并执行这些测试,然后再运行任何测试。您只需要在Citrus上下文中将其配置为bean。
诀窍是使用上面提取的变量的值设置一个 全局变量 。之后,您可以在以下任何测试中使用此变量:
http() .client(HttpTqaClient) .send() .get("/account/api/lk/lk-client/current") .accept("application/json") .contentType("application/json") .header("Authorization", "${global_auth_token}");
我必须问,您使用的是哪个版本的Citrus?建议您使用
TestNGCitrusTestRunner代替,
TestNGCitrusTestDesigner因此使用
TestRunnerBeforeSuiteSupport代替
TestDesignerBeforeSuiteSupport。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)