问题标签 [python-behave]

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 投票
2 回答
2482 浏览

python - 如何确定(Python)行为特征文件是否从 stepfile 中成功运行?

假设我有一个主要的 python 行为特征文件,在所述文件中,我检查是否存在 25 个,给予或接受,特征文件,以正确的顺序运行它们中的每一个,然后验证一些后置条件。

如果可能的话,我希望能够在单个功能文件中测试多个功能。我写了这一步:

目前,只要在主功能文件的@when 子句中执行某个功能,此步骤将始终成功运行。我相当肯定这是因为它没有检查任何条件,如果执行了一个行为脚本,无论它是否失败,这一步都会通过。

为了解决这个问题,我想在这一步或 environment.py 文件的 after_feature() 函数中添加一行,以检查执行的行为特征是否通过。

Behave 的 API 确实说它包含一个从特性文件创建的特性对象,它返回一个“状态”变量,告诉你特性是通过还是失败。但是,该状态变量似乎只能在 environment.py 文件中访问。

我的想法是,我会找到一种方法来使用行为的功能而不是 os.system 从步骤中执行功能对象,然后检查其状态,但我不知道这是否可能。或者,我知道我可以编写一个按顺序执行 25 个场景的功能文件,但文件中包含所有场景。但是我想避免这样做,因为主脚本被分成 25 个较小的脚本用于单独的测试目的。此外,拥有几个较小的功能和一个大功能以执行同一文件夹中所有较小功能的功能并以任意顺序运行也不是一个好主意。

如果来自另一个文件的功能通过或失败,我如何从 environment.py 或 steps.py 中检查?

编辑:我猜的另一个想法是找到一种方法将发送到命令行的文本输出到功能日志文件并阅读最后几行以查找是否有任何功能或步骤失败,尽管这看起来像迂回的做事方式。

0 投票
1 回答
1348 浏览

python - 将行为输出捕获到动态创建的日志文件中

我正在尝试将 Behave 输出捕获到一个文件中(比如说一个日志文件)。我在“@then”步骤为每次运行基于日期时间的行为动态创建一个新的日志文件。下面是 steps/xx.py 文件中给出的示例代码。

现在我试图在每次运行时将 Behave 输出发送到上面创建的日志文件。我知道命令“Behave -o [file name]”将为每次运行创建一个文件,但我认为每次新运行都会将 STDOUT 发送到上面创建的文件。使用 STDOUT 在类似生产的环境中写入文件并且不会引起任何问题是否更好/更安全。

我是 Python 和 Behave 的新手,因此期待任何关于如何实现它的解决方案/建议。任何相关材料或信息也将不胜感激。

提前致谢

0 投票
2 回答
1350 浏览

python - 如何在给定步骤中使用 django-behave 登录用户

我正在使用 django-behave 在 Django 项目中运行行为测试。在我的功能文件中,我在几种情况下都有这个给定的步骤:

到目前为止,我一直在做的是使用 Selenium 手动完成登录过程。但这需要很长时间,而且这不是我目前正在测试的。加上行为文档说:

Requests/Twill/Selenium 交互等主要应该进入When步骤

那么在这个 Given 步骤中我应该如何登录用户呢?有没有办法使用 django.test.Client.login()?我可以将会话放入固定装置吗?

0 投票
0 回答
1301 浏览

python - Change in python script not reflected when I execute module "behave"

I am trying to use Behave from terminal. Typing behave in terminal, I received an error,

Exception ImportError: No module named worker

File "features/environment.py", line 11, in <module>

from worker import glob, json

ImportError: No module named worker

I have made the change in my environment.py document and removed the from worker import glob, json.

However when I execute behave, I receive the same error. I closed terminal, reopened it. I closed the text editor (Atom) and reopened it. The error persists. When I restarted the computer, it finally reflected the changes. I do not want to restart the computer every time to get behave to show the document changes.

Why is this happening and what can be done?

0 投票
2 回答
1739 浏览

python - Python - 从特定行读取 CSV 单元格 - 行索引在变量中传递

我正在使用 Python Behave 对 Web 应用程序运行自动化测试。

有一个登录页面,需要用户名和密码。

Behave 场景有不同的登录要求,例如;

我创建了一个 csv 文件来保存每次登录的用户名和密码,但我无法让它只读取我想要的详细信息。

csv文件是这样的;

所需用户在 Behave 步骤定义中传递;

我尝试了以下实现;

但这只是使用表中的第一个用户登录。

我不知道如何让它只选择登录对应的用户名和密码。

例如,我将登录名作为 user2 传递,我希望用户名作为 somename2,密码作为 password2。

我已经阅读了与读取 csv 文件相关的其他问题,但我找不到与此相同的问题。

我对 Python 很陌生。

0 投票
1 回答
140 浏览

python-behave - 使用 python-behave 时内存使用率高

我在使用 python-behave 时遇到了问题。

我在每个场景之前创建一个沙盒数据库,并在场景之后销毁它。

但是每个场景的内存使用量增加约 20MB,所有测试用例(LoL)的总使用量约为 3.xGB。

我的问题是为什么当我调用 context.runner.teardown_databases() 时没有释放内存?

蟒蛇行为:版本 1.2.5

django:版本 1.8.0

蟒蛇:2.7版

任何建议表示赞赏。

0 投票
1 回答
3829 浏览

python - Python Behave 在特征之间共享数据

我从 Python Behave 开始,因为我想做一个 API 测试。
目前我偶然发现了一些可能甚至无效的东西,但问题是:我可以在功能之间共享数据吗?我可以将一些存储在数据库或文件中,但也许有一些“内置”的东西?

或者这是无效的,我不应该共享这样的数据,或者它可能在功能内部?

在实践中,它看起来像:

我必须向端点发出请求,在响应中我得到一个数字,该数字是发出另一个需要测试的请求所必需的。

0 投票
1 回答
1788 浏览

python-2.7 - 当我运行我的功能测试时,BDD Behave Selenium Python 错误没有名为 pages 的模块

我在 Behave Python Selenium 中编写了一个功能测试。当我运行测试时,它会抛出错误 ImportError No module named pages。我认为它在 pages 目录中找不到我的类。主页.py,搜索页面.py

我的进口不正确吗?我该如何解决这个问题?

完整的错误是:

我的代码如下:

特征\步骤\steps.py

功能\环境.py

页面\主页.py

页面\searchpage.py

我的目录结构如下:

谢谢,里亚兹

0 投票
2 回答
839 浏览

python - 如何检查功能中使用的所有标签?

我有很多功能,并且想控制标签列表,以防止拼写错误和其他命名问题。有没有办法在我的所有功能中获取标签列表?

所以有

我会得到标签列表['opponent', 'wip', 'dummy']

0 投票
1 回答
1611 浏览

python - PyCharm Python ImportError 行为

我正在尝试使用 Behave 在 PyCharm 中运行一些测试,它一直告诉我我有这个问题:

我有一个同事克隆了这个项目,他们可以在他们的机器上运行它,有什么见解吗?

Python 2.7.10