问题标签 [cucumber-serenity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
665 浏览

serenity-bdd - 如何配置宁静报告线程数?

默认情况下,Serenity 报告线程设置为 80,在报告生成期间它会冻结机器,我找不到任何地方可以配置线程数,从下面的测试结果报告可以看出,配置报告线程:80,任何人都知道如何更改它?

[INFO] 配置的报告线程:80

0 投票
2 回答
1677 浏览

selenium-webdriver - 带有黄瓜功能钩子的 serenity-bdd

我正在将 Serenity-BDD 与黄瓜一起使用,我希望每个功能文件只运行一次某些东西。看起来黄瓜目前不支持这一点。我想知道宁静是否有一些解决方法。

我还尝试在测试套件类中使用 JUnit @BeforeClass、@AfterClass 钩子,但是 2 个注释需要静态方法,并且当时我无法访问 serenity 页面对象方法(当时没有注入实例)。

0 投票
1 回答
284 浏览

java - 如何使用 cucumber-jvm、cucumber-serenity 和 SerenityObjectFactory 进行多态测试

我发现了一个有趣的博客,一般解释了如何使用黄瓜 bdd 和 picocontainer 依赖注入来实现多态步骤定义。你可以在这里访问博客

我陷入困境的地方是不知道如何将自动化逻辑保留在“通用”接口后面,然后提供两种不同的实现,一种直接与域模型对话以进行单元集成测试,另一种使用 Selenium WebDriver 进行 UI-测试。

有人可以给我建议/骨架如何实现这一点。我非常感谢你帮助社区。

0 投票
1 回答
3023 浏览

selenium-webdriver - Cucumber 未找到步骤文件“使用片段实现缺少的步骤”

我已经设计了我的固件,并且我已经在包中准确地放置了跑步者和步骤文件。但我无法运行 TC,它说测试未决,但步骤已定义。

PFA 我的项目结构。 在此处输入图像描述

我的步骤文件:

}

特征文件

0 投票
3 回答
1056 浏览

java - 在 Cucumber-jvm 中使用多个步骤定义时出现 NullPointerException

我目前正在构建一个框架来测试 Rest-API 端点。由于我计划编写大量测试用例,因此我决定组织项目以允许我重用常见的步骤定义方法。

结构如下;

但是,当我尝试调用SimpleSearchSteps.java方法时,我得到了 NullPointerException

CommonStepDefinition Code

SimpleSearchStepDefinition.java

0 投票
0 回答
50 浏览

automation - Serenity BDD JVM 如果 showl 场景失败或通过,我该怎么做?

我用 serenityBDD 和 JVM 构建了这个框架。我需要使用 api 在测试轨道中写入结果,如果我的场景失败,则触发此 api。我无法在场景步骤中添加它,因为如果它在可能无法到达该 API 之前失败。如果整个场景失败,我有办法触发这个端点吗?如果它通过,我也需要触发它。

示例:如果我无法在下面输入我的凭据,那么我需要触发 api。

场景:验证我登陆主页

鉴于我导航到网站

当我使用我的凭据登录时

当我点击主页时

然后我验证我在主页

0 投票
0 回答
281 浏览

selenium-webdriver - 宁静属性不适用于野生动物园

在我的设置中,我正在为 CucumberWithSerenity.class 运行测试问题是在使用 safari 浏览器执行我的测试后,safari 不会清除 cookie 和其他相关数据。例如,登录步骤完成后,我必须搜索用户并设置用户,以便获得相关部分。但是 safari 保留了之前测试执行中设置的用户信息。为了解决这个问题,我在 serenity.properties 文件中设置了以下内容: safari.options.useCleanSession=true 但是,这似乎不起作用。

在其他浏览器上,我没有这样的问题。我是否错误地执行了该属性?

是否有其他选择可以确保每次启动 safari 浏览器时,我都有新的会话?

你能举个例子吗?

0 投票
1 回答
786 浏览

angular - 测试完成后如何自动打开报告

我正在使用黄瓜和 Angular CLI 运行 Serenity-js。

我正在使用“package.json”中的脚本来执行清理、测试和生成报告的顺序"e2e2": "failsafe clean pretest protractor report"

target/site/serenity/index.html 一切正常,但我希望在测试完成时自动打开 位于其中的报告。

如何使用此功能完成我的脚本序列?

0 投票
1 回答
672 浏览

internet-explorer - Selenium 打开多个 Internet Explorer 浏览器

我有 Selenium 自动化框架,Cucumber with Serenity。每当我执行脚本时,它会打开 6-7 个不同的 IE 浏览器。到目前为止,我已经尝试过以下事情。

1. 从 Internet 选项中为所有区域启用保护模式
2. 选中“重置新窗口和选项卡的缩放级别”选项
3. 在我的 serenity 框架中,我在 serenity.properties 文件中设置了以下 IE 驱动程序功能:

如果我遗漏了什么,请告诉我。
注意:我在我的机器上使用 Internet Explorer 11

0 投票
0 回答
436 浏览

serenity-bdd - 黄瓜步骤定义/宁静步骤

我正在寻找一些关于如何使用 Serenity/Cucumber 构建我相当大的框架的指导,以便我有效地使用抽象层。

除手册中的内容外,是否有任何一般规则/建议/提示?

按照手册中的建议设置框架。即我有多个功能文件、步骤定义文件、宁静步骤文件。但是我发现我在单个测试中使用了多个步骤定义文件和宁静文件。

例如,假设我有 2 个不同的功能,并且在每个功能的场景中都有相同的黄瓜步骤(假设我已登录),那么显然这些功能中至少有 1 个使用步骤定义文件中的步骤定义不属于此功能。- 这是好习惯吗?我不想在多个步骤定义文件中重复步骤定义,但有时我需要在步骤定义文件中设置变量。

我还在一些步骤定义中调用了多个宁静步骤文件。例如,我可能会在 1 步定义文件中使用 SearchSteps 和 BuyerSteps。这是好习惯吗?