【问题标题】:citrus-cucumber or citrus/xmlDSL tests柑橘黄瓜或柑橘/xmlDSL 测试
【发布时间】:2018-09-26 08:43:20
【问题描述】:

我现在正在使用与黄瓜集成的柑橘框架。我正在考虑更改 XML DSL(或 java DSL)。我应该为每个不同的测试文件(xml 或 json)添加一个模板吗?并链接它们?

我的测试应该比较两个或更多文件。我可以把这些文件的路径(我看到的例子只是关于消息..)?

非常感谢您的帮助!

【问题讨论】:

    标签: java cucumber integration-testing citrus-framework


    【解决方案1】:

    如果您想将 Cucumber BDD 与 Citrus 一起使用,您应该使用 Java DSL,因为它已集成到编写 Cucumber 步骤定义类中。在步骤定义方法中,您当然可以从文件系统或类路径加载模板。假设您的 BDD 规范中有以下行。

    When user adds entry "path/to/template.txt"
    

    您可以使用步骤定义中的路径作为方法参数,并从文件系统或类路径加载模板。

    @When("^user adds entry \"([^\"]*)\"$")
    public void add_entry(String path) {
        designer.http()
            .client(todoClient)
            .send()
            .post("/todo")
            .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
            .payload(new ClassPathResource(path));
    }
    

    当然,您也可以在通过文件模板接收和验证消息时这样做。

    如果您在没有 Cucumber 的情况下进行纯 XML 测试,您可以在发送/接收操作中提供文件路径。

    <testcase name="TodoList_Post_IT">
      <actions>
        <http:send-request client="todoClient">
          <http:POST path="/todo">
            <http:headers content-type="application/x-www-form-urlencoded"/>
            <http:body>
              <http:resource file="path/to/template.txt" />
            </http:body>
          </http:POST>
        </http:send-request>
      </actions>
    </testcase>
    

    这适用于 Http 和所有其他消息传输(JMS、WebSocket、SOAP WebServices,...)。

    您还可以在模板文件中使用测试变量,以便在多个测试用例中重复使用它们。查看 Citrus 中的测试变量,它们可以帮助您获得更多动态测试数据。

    【讨论】:

    • 谢谢克里斯托夫。我对医生有一些问题,但现在好多了。我还有一个关于并行测试的问题:有没有办法在柑橘中启动并行测试?我现在正在使用 maven-failsafe 的配置,但我必须添加一个解决方案来检索相应的消息。再次感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多