1

我正在尝试通过实现 BDD 框架来增强我的 Webdriver 脚本。我开始了解 JBehave (JBehave+Webdriver),但在继续之前,我担心需要多少 Java 代码实现,因为我主要从事自动化测试。根据我的看法,JBehave 分三个步骤工作:

  1. 添加故事文件
  2. 将故事文件实现为 Java(我在这一步遇到问题)
  3. 实现 Webdriver 调用。

因此,使用这种方法如果我有一个用户故事,例如注册到应用程序中,那么:

  • 实施用户故事
  • java中的实现——用Java实现完整的认证逻辑
  • 实施 webdriver - 自动化用户操作

另一个例子:我有一个执行特定工作流的用户故事,需要在 5-6 页上执行一组操作,然后我需要为此实现/模拟 Java 代码。

这是 JBehave 的工作方式吗?还有没有其他选择。

4

4 回答 4

1

jbehave的五步概述:

  1. 写故事(纯文本)
  2. 将步骤映射到 Java 方法 (POJO)
  3. 配置故事(仅一次)
  4. 运行故事(使用任何:Ant、Maven、JUnit、Eclipse、IntelliJ)
  5. 查看报告 (HTML)

jbehave详情可以访问:http: //jbehave.org/

您可以访问以下教程示例: https ://github.com/jbehave/jbehave-tutorial

于 2012-12-26T06:51:38.013 回答
0

jbehave 以一种方式工作,并且不依赖于 webdriver 的存在与否,如果您想获得“在一页中”的操作方法,您可以查看此处

Java BDD 框架http://java.dzone.com/articles/brief-comparison-bdd - 对我来说 JBehave 和 Cucumber 是最好的选择,因为它们拥有庞大而活跃的社区

于 2014-06-17T11:04:35.853 回答
0

JBehave 的工作方式如下;

  1. 写一个故事来描述系统的某种期望行为。这个故事必须根据JBehave DSL编写。这个故事本质上描述了 Given/When/Then 流程中的一系列步骤。

  2. 在 java 代码中实现 Given/When/Then 步骤。这涉及针对 webdriver API 编写代码以与被测应用程序交互。

  3. 运行故事并分析结果。它要么通过,要么失败。

我目前正在写一篇相当详细的博客文章,并会在完成后用链接更新这个答案。

于 2012-05-28T16:31:55.697 回答
0

如果您在“纯”Java 中实现故事文件时遇到问题,那么您应该尝试Ginkgo4j。它是 RSpec 的 Java 端口,允许您以与 RSpec 相同的方式进行测试,只是在 Java 中。

将此依赖项添加到您的 POM:

    <dependency>
        <groupId>com.github.paulcwarren</groupId>
        <artifactId>ginkgo4j</artifactId>
        <version>1.0.9</version>
        <scope>test</scope>
    </dependency>

创建一个指定 Ginkgo4jRunner 运行器的 JUnit 测试用例:

@RunWith(Ginkgo4jRunner.class)
@Ginkgo4jConfiguration(threads = 1)
public class MyTest {
  {
    Describe("ClassUnderTest", () -> {
      Context("#Method", () -> {
        BeforeEach(() -> {
          // before test logic          
        }); 
        JustBeforeEach(() -> {
          ClassUnderTest.Method();          
        }); 
        Context("given a context", () -> {
          It("should do something", () -> {
            // assertions
          });
        });
        Context("given a different context", () -> {
          It("should do something else", () -> {
            // assertions
          });
        });
        AfterEach(() -> {
          // after test logic
        });
      });
    }); 
  }
}
于 2018-06-02T06:52:32.960 回答