标签: python-behave

如何使用python重试失败的场景

有人可以告诉我"我怎样才能在使用python的行为中再次运行失败的测试".

如果失败,我想自动重新运行失败的测试用例.

任何帮助赞赏.

谢谢

python-behave

4
推荐指数
2
解决办法
1941
查看次数

Behave 的装饰器是如何创建/声明的?

我目前正在使用 Behave(用于 Python 的 BDD)并且一直在挖掘源代码以了解@given,@when@then装饰器是如何声明的。

我走得最远的是看看step_registry.py我在哪里找到了setup_step_decorators(context=None, registry=registry)似乎在做这项工作的功能。

但是,我不太明白这些装饰器是如何创建的,因为它们似乎没有在源代码中以def when(...):. 我的印象是它们是基于字符串 ( for step_type in ('given', 'when', 'then', 'step'):)列表声明的,然后通过调用make_decorator().

有人可以引导我完成代码并解释这些装饰器的声明位置/方式吗?

您可以在此处访问Behave源代码

python bdd python-decorators python-behave

3
推荐指数
1
解决办法
742
查看次数

如何在行为测试 .feature 文件的示例表中使用管道字符?

我有一个行为场景大纲,我需要在其中使用管道字符 -|作为示例表中的单元格值。但我不知道如何转义这个字符不被视为列分隔符。我得到Malformed table的错误,当我尝试使用\|序列。

python-behave

3
推荐指数
1
解决办法
881
查看次数

无法在 Pycharm 社区中创建 .feature 文件

我已经安装了Pycharm社区版并使用以下命令安装了behave 1.2.5 。

pip install behave
Run Code Online (Sandbox Code Playgroud)

它已成功安装,并且可以在Pycharm 项目解释器中使用,如下所示。

表现

但当我右键单击项目时,我没有看到创建 .feature 文件(Gherkin 文件)的选项

小黄瓜锉刀

我是否错过了这里的任何内容,在 Pycharm professional 中默认 Behave BDD 可用。如何配置 Pycharm 社区的行为。

python pycharm gherkin python-behave

3
推荐指数
1
解决办法
3477
查看次数

如何使用 Pycharm 社区运行功能文件

我已经安装了行为 1.2.5 和 PyCharm 社区。当我右键单击功能文件时,我没有看到名为Run as feature file的选项。

如何设置运行配置

运行配置

python pycharm python-behave

3
推荐指数
2
解决办法
4078
查看次数

行为:用动态示例编写场景大纲

小黄瓜/行为Examples

Gherkin 语法功能使用示例进行自动化测试

Feature: Scenario Outline (tutorial04)

  Scenario Outline: Use Blender with <thing>
    Given I put "<thing>" in a blender
    When I switch the blender on
    Then it should transform into "<other thing>"

    Examples: Amphibians
        | thing         | other thing |
        | Red Tree Frog | mush        |
        | apples        | apple juice |

    Examples: Consumer Electronics
        | thing         | other thing |
        | iPhone        | toxic waste |
        | Galaxy Nexus  | toxic waste |
Run Code Online (Sandbox Code Playgroud)

测试套件将运行四次,每个示例运行一次,给出类似于以下内容的结果: …

cucumber gherkin python-behave

3
推荐指数
1
解决办法
2万
查看次数

行为:如何在非玩具项目中组织该框架的文件

我正在尝试使用行为框架、python 通过 BDD 测试来覆盖项目。问题是所有 BDD 材料都使用不真实的玩具示例。我的项目相当大,我遇到了以下问题

  1. 在不同的 .feature 文件中,我具有相同的步骤名称,但它们的实现必须不同。示例:步骤名称“输入代码并单击提交按钮”可以在网站上的许多不同页面上使用。如何解决这种碰撞?
  2. 如果您有复杂的网页进行测试,步骤实现文件会快速增长。在几个 .feature 文件之后,步骤文件就有超过 400 多个代码字符串。根据 .feature 文件划分步骤文件(1 对 1)不是一个解决方案,因为某些步骤必须在 .feature 文件之间共享,并且如何找到特定步骤变得不明显。是否有可能按级别划分步骤实现(功能级别、少数功能级别的目录、项目范围级别...)

python bdd python-behave

3
推荐指数
1
解决办法
1323
查看次数

登录 Behave BDD 框架

我是 Python 中的 BDD 新手,我正在尝试创建一个框架。根据文档,我创建了environment.py 文件,其中有一个方法:

def before_all(context):
    context.config.setup_logging(configfile="test.ini", filename="AppLog.log")
Run Code Online (Sandbox Code Playgroud)

但我不确定需要在步骤(步骤方法)中添加什么,以便我的 AppLog.log 文件包含日志。我需要在步骤文件中初始化记录器吗?如果是的话,这个setup_logging将如何在那里使用?

如果可以提供示例代码,那么它将非常有帮助。

谢谢和问候, 苏尼尔

python bdd python-3.x python-behave

3
推荐指数
1
解决办法
1万
查看次数

如何运行 pytest-bdd 测试?

我不明白如何使用库正确运行简单的测试(功能文件和 python 文件)pytest-bdd

从官方文档中,我无法理解要发出什么命令来运行测试。

我尝试使用pytest命令,但我看到没有测试运行。我是否需要使用另一个库behave来运行功能文件?

pytest python-behave

3
推荐指数
1
解决办法
4356
查看次数

如何将等待/睡眠装饰器添加到步骤函数(行为)?

使用 Python/Selenium/Behave:

我想知道如何正确地将等待/睡眠装饰器添加到步骤函数中?

我用我的装饰器函数设置了一个 helper.py :

import time

def wait(secs):
    def decorator(func):
        def wrapper(*args, **kwargs):
            ret = func(*args, **kwargs)
            time.sleep(secs)
            return ret
        return wrapper
    return decorator

class Helper(object):
    pass
Run Code Online (Sandbox Code Playgroud)

在我的步骤文件中,我在行为装饰器之后调用等待装饰器以匹配步骤:

from behave import step
from features.helper import wait

@step('I observe a login error')
@wait(3)
def step_impl(context):
    #time.sleep(3)
    assert context.login_page.check_login_error() is not None
Run Code Online (Sandbox Code Playgroud)

但是,当我从功能文件执行该步骤时,没有执行等待/睡眠,并且断言失败。在这种情况下我该如何执行等待装饰器?

python python-decorators python-behave

3
推荐指数
1
解决办法
3145
查看次数