我正在尝试通过实现BDD框架来增强我的Web驱动程序脚本。我开始了解JBehave(JBehave+Webdriver),但在继续之前,我担心需要多少java代码实现,因为我主要从事自动化测试。根据我的看法,JBehave分三个步骤工作:
- 添加故事文件
- 将故事文件实现到 Java 中(我在此步骤中遇到问题)
- 实现 Web 驱动程序调用。
所以使用这种方法,如果我有一个用户故事,例如注册到应用程序中,那么:
- 实现用户故事 在 Java 中
- 实现 - 在 Java 中实现完整的身份验证逻辑
- 实施网络驱动程序 - 自动化用户操作
另一个例子:我有一个用户故事,它执行一个特定的工作流程,需要在5-6个页面上做一组操作,然后我需要为此实现/模拟java代码。
这是 JBehave 的工作方式吗?还有没有其他选择。
jbeact 的五步概述:
- 写故事(纯文本)
- 将步骤映射到 Java 方法 (POJO)
- 配置故事(仅一次)
- 运行故事(与以下任何一种:Ant,Maven,JUnit,Eclipse,IntelliJ)
- 查看报告 (HTML)
您可以访问有关jbehave的详细信息:http://jbehave.org/
您可以访问以下内容以获取教程示例:https://github.com/jbehave/jbehave-tutorial
JBehave 的工作方式如下;
-
写一个描述系统某种期望行为的故事。这个故事必须根据JBehave DSL编写。该故事实质上描述了给定/何时/然后流中的一系列步骤。
-
在 java 代码中实现给定/何时/然后步骤。这涉及针对 Web 驱动程序 API 编写代码以与受测应用程序进行交互。
-
运行故事并分析结果。它要么通过,要么失败。
我目前正在写一篇关于此的相当详细的博客文章,并在完成后使用链接更新此答案。
jbeact 以一种方式工作,不依赖于是否存在 webdriver如果您想"在一页中"获得操作方法,可以查看此处
Java BDD框架 http://java.dzone.com/articles/brief-comparison-bdd - 对我来说,JBehave和Cucumber是最好的选择,因为拥有庞大而活跃的社区
如果您在"纯"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
});
});
});
}
}