我对Cucumber有一个问题-现在我正在做一个移动自动化,我有使用场景大纲的功能-我在场景中有几个变量:
方案大纲:菜单项
Given the user is on the hamburger menu
And the language is <language>
Then menu item is <menu item>
Examples:
| menu item | language |
| Search | EN |
| Zoeken | NL |
| Recherche | FR |
| Saved properties | EN |
| Bewaarde zoekertjes | NL |
| Biens sauvés | FR |
| Saved searches | EN |
| Bewaarde zoekacties | NL |
| Recherches sauvées | FR |
| Settings | EN |
| Instellingen | NL |
| Paramètres | FR |
当我运行这个场景时,它会为每一行重新启动应用程序(在某些情况下,这可能是好的,但不是这样),这非常耗时。有没有一种方法可以指出应用程序什么时候应该重启应用程序,什么时候应该继续运行?
我尝试将这些示例作为列表处理,但这没有帮助。
@Then("^menu item is (.*)$")
public void menuItem(List<String> menuItems){
for(String menuItem : menuItems)
Assert.assertEquals( menuItem, Common.getElementAttributeByName(menuItem,"text"));
}
听起来您在每个场景之前重新启动应用程序,对于场景大纲,您希望应用程序只启动一次。
方案大纲是编写许多方案的速记方法。每个示例都将展开并变成一个场景,然后执行。
您的选择是
最后一种替代方法意味着您将语言列表向下移动堆栈。可能进入帮助程序类的步骤委托到。
这意味着这样的场景:
Given the user is on the hamburger menu
When he order a hamburger
Then he should be able to do it on all languages
我对这里的措辞不满意。但是这个想法是你把语言列表藏在某个深处。这将允许您对它们进行迭代,而不是在场景大纲中列出语言列表。
这将解决您面临的重启问题,因为您在每个场景之前都要重启。
它还将提高您的场景中的抽象级别。目前,你的场景对我来说更像是一个脚本,而不是一个期望行为的规范。
正如托马斯·桑德伯格所说,你有很多选择。然而,对于您的特殊情况,您可能需要保持所有规格不变
那么他应该能在所有语言上做到这一点
不够具体。您可以像这样重写场景:
Scenario: Menu items
Given the user is on the hamburger menu
Then the possible menu items are
| Search | EN |
| Zoeken | NL |
| Recherche | FR |
| Saved properties | EN |
| Bewaarde zoekertjes | NL |
| Biens sauvés | FR |
| Saved searches | EN |
| Bewaarde zoekacties | NL |
| Recherches sauvées | FR |
| Settings | EN |
| Instellingen | NL |
| Paramètres | FR |
然后你可以这样处理这些:
@Then("^the possible menu items are$")
public void menuItems(Map<String, String> menuItems){
for(Map.Entry<String, String> menuItem:menuItems.entrySet()) {
switchToLanguage(menuItem.getValue());
Assert.assertEquals( menuItem.getKey(), Common.getElementAttributeByName(menuItem.getKey(),"text"));
}
前面虽然介绍了几十个常用的 Logstash 插件的常见配置项。但是过多的选择下,如何组合使用这些插件,依然是一部分用户的幸福难题。本节,列举一些最常见的日志场景,演示一下针对性的组件搭配。希望能给读者带来一点启发。 链接 nginx访问日志 nginx错误日志 postfix日志 ossec日志 windows系统日志 Java日志 MySQL慢查询日志
我有几个测试如下: 对于每个测试,我应该添加相同的表格示例。 有没有办法提取这个表,以便在所有测试中使用同一个表?
我想在一个扩展场景的类中画一张画布。当我按下场景上的按钮时,这个场景应该显示出来,这个场景是在扩展的类“GUI”中创建的。 为设置图像(我不知道要将ImageView作为子节点添加到哪个节点{类似不起作用}) 试图在画布上画画。(与上面的问题相同。在哪里添加此画布?) 类: 和类: PS:Jeah!我在这个论坛上的第一个问题。你好世界!
我有一个示例项目,其中使用了Maven、TestNg和Cucumber。我使用testrunner类运行测试。 我创建了一个包含两个方案的功能文件,但两个方案都失败了。我有两个具有不同功能文件的测试运行者类 - 1。特征文件指向所有功能,2。指向仅失败的方案。 当我尝试重新运行场景时,它只运行一个场景。 1- 请告知如何执行所有失败的方案。
cucumber场景使用JUnit运行。 我有一个用例,需要根据Jira票据的状态跳过特定的Cumber场景。然后,我需要将该场景标记为在html报告中传递。 我可以使用PendingException()或AssumptionViolatedException()轻松跳过场景,两者都可以正常跳过场景执行并将步骤标记为跳过。但是场景本身将被标记为失败,我希望它被通过。 无论如何,我可以做到这一点?
之前在 codec 章节,曾经提到过,对 Java 日志,除了使用 multiline 做多行日志合并以外,还可以直接通过 log4j 写入到 logstash 里。本节就讲述如何在 Java 应用环境做到这点。 Log4J 首先,需要配置 Java 应用的 Log4J 设置,启动一个内置的 SocketAppender。修改应用的 log4j.xml 配置文件,添加如下配置段: <appende
本节作者:林鹏 配置OSSEC SYSLOG 输出 (所有agent) 编辑ossec.conf 文件(默认为/var/ossec/etc/ossec.conf) 在ossec.conf中添加下列内容(10.0.0.1 为 接收syslog 的服务器) <syslog_output> <server>10.0.0.1</server> <port>9000</port> <for
postfix 是 Linux 平台上最常用的邮件服务器软件。邮件服务的运维复杂度一向较高,在此提供一个针对 postfix 日志的解析处理方案。方案出自:https://github.com/whyscream/postfix-grok-patterns。 因为 postfix 默认通过 syslog 方式输出日志,所以可以选择通过 rsyslog 直接转发给 logstash,也可以由 log