跳转到主要内容

Django的Robot Framework库。

项目描述

https://travis-ci.org/kitconcept/robotframework-djangolibrary.svg?branch=master Egg Status Latest Version License

kitconcept

简介

DjangoLibrary是一个用于测试Django的Web测试库,使用SeleniumLibrary在真实浏览器实例上运行测试。

库将在运行测试时自动启动和停止您的Django实例。它还包含几个自动登录关键字,允许您在测试期间登录不同的用户,而无需实际访问登录页面。

DjangoLibrary目前已在Django 1.8.x、1.9.x、1.11.x与SQLite和Postgres在Python 2.7和3.6上进行了测试。

文档

Robot Framework Django库关键字文档

安装

使用pip安装robotframework-djangolibrary

$ pip install robotframework-djangolibrary

为了能够使用DjangoLibrary的AutologinFactoryBoyQuerySet关键字,您必须将相应的中间件类添加到settings.py中的MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES = (
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'DjangoLibrary.middleware.AutologinAuthenticationMiddleware',
    'DjangoLibrary.middleware.FactoryBoyMiddleware',
    'DjangoLibrary.middleware.QuerySetMiddleware',
)

第一个机器人测试

为了编写您的第一个机器人测试,请确保包含 SeleniumLibrary 和 DjangoLibrary。创建一个包含以下内容的 test.robot 文件

*** Variables ***

${HOSTNAME}             127.0.0.1
${PORT}                 55001
${SERVER}               http://${HOSTNAME}:${PORT}/
${BROWSER}              firefox


*** Settings ***

Documentation   Django Robot Tests
Library         SeleniumLibrary  timeout=10  implicit_wait=0
Library         DjangoLibrary  ${HOSTNAME}  ${PORT}  path=mysite/mysite  manage=mysite/manage.py  settings=mysite.settings
Suite Setup     Start Django and open Browser
Suite Teardown  Stop Django and close Browser


*** Keywords ***

Start Django and open Browser
  Start Django
  Open Browser  ${SERVER}  ${BROWSER}

Stop Django and close browser
  Close Browser
  Stop Django


*** Test Cases ***

Scenario: As a visitor I can visit the django default page
  Go To  ${SERVER}
  Wait until page contains element  id=explanation
  Page Should Contain  It worked!
  Page Should Contain  Congratulations on your first Django-powered page.

许可证

版权所有 kitconcept GmbH。

根据 Apache License 2.0 分发,robotframework-djangolibrary 是免费和开源软件。

贡献

支持

如果您遇到问题,请告诉我们。如果您需要专业支持,请随时通过info@kitconcept.com.联系我们。

运行测试

然后您可以使用 robot 运行测试

$ robot test.robot

输出应该如下所示

==============================================================================
Test :: Django Robot Tests
==============================================================================
Scenario: As a visitor I can visit the django default page            | PASS |
------------------------------------------------------------------------------
Test :: Django Robot Tests                                            | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  /home/timo/workspace/prounix/robotframework-djangolibrary/output.xml
Log:     /home/timo/workspace/prounix/robotframework-djangolibrary/log.html
Report:  /home/timo/workspace/prounix/robotframework-djangolibrary/report.html

测试隔离

robotframework-djangolibrary 默认不提供测试之间的隔离。这意味着如果您在测试中将对象添加到数据库中,该对象也将存在于下一个测试中。您需要自行清理以实现测试之间的适当隔离。您可以使用 robotframework 的“测试清理”调用在每个测试后调用“清空数据库”关键字

*** Settings ***

Library         SeleniumLibrary  timeout=10  implicit_wait=0
Library         DjangoLibrary  ${HOSTNAME}  ${PORT}  path=mysite/mysite  manage=mysite/manage.py  settings=mysite.settings  db=mysite/db.sqlite3
Suite Setup     Start Django and open Browser
Suite Teardown  Stop Django and close Browser
Test Teardown   Clear DB

开发

从 Github 检出存储库

$ git clone https://github.com/kitconcept/robotframework-djangolibrary.git

创建一个虚拟 Python 环境

$ cd robotframework-djangolibrary/
$ virtualenv .py27
$ source .py27/bin/activate

以开发模式安装 robotframework-djangolibrary

$ python setup.py develop

安装需求

$ pip install -r requirements.txt

运行单元/集成测试

$ py.test mysite/

运行验收测试

$ robot DjangoLibrary/tests/

3.1.0 (2018-12-24)

新功能

  • Python 3.7 支持。[timo]

3.0.0 (2018-11-26)

破坏性更改

新功能

  • Python 3.6 支持(较早的版本可能也支持 Python 3.6,但我们尚未对其进行测试)。[timo]

2.0.2 (2018-03-03)

错误修复/小更改

  • 修复 Pypi 标记。[timo]

2.0.1 (2018-03-03)

错误修复/小更改

  • 修复过时的文档。[timo]

2.0 (2017-09-20)

破坏性更改

  • 从内部启动流程中删除已弃用方法。[cdvv7788]

新功能

  • 使用 AUTH_MODEL 创建用户而不是 django 的默认值。[cdvv7788]

  • 将 FactoryBoy 升级到版本 2.8.1。[amarandon]

  • 添加 Django 1.10.7 和 1.11.1 支持。[timo]

  • 添加 LICENSE.txt。[timo]

错误修复/小更改

  • 将测试移动到使用 Chrome。[timo]

  • 将测试升级到 Django 1.11.5、1.10.8、1.9.13、1.8.18。[timo]

  • 将 Django 1.11 和 1.10 添加到 setup.py。[timo]

1.2 (2016-07-08)

新功能

  • 使 Factory Boy 关键字返回“pk”属性。[timo]

1.1 (2016-07-07)

新功能

  • 添加 QuerySet 关键字。[timo]

  • 在使用 FactoryBoy 关键字时,使能够覆盖子工厂。[timo]

错误修复

  • 使用 Django 的 model_to_dict 方法对 factory_boy 关键字响应对象进行序列化。[timo]

1.0 (2016-06-30)

  • 重新发布 1.0a6 为 1.0。[timo]

1.0a6 (2016-04-29)

新功能

  • Python 3 兼容性。请注意,robotframework-selenium2library 的最新官方版本目前与 Python 3 不兼容。有关工作预发布版和详细信息,请参阅 https://github.com/HelioGuilherme66/robotframework-selenium2library/releases。[timo]

  • 添加了对 Postgres 的支持。所有 Django 数据库后端都应正常工作。但我们只测试了 SQLite 和 Postgres。[timo]

  • 添加“Factory Boy”关键字。这使我们能够在 Robot Framework 测试中使用 factory_boy 工厂。[timo]

破坏性更改

  • 取消 Django 1.7.x 支持。我们测试和支持 Django 1.8.x 和 1.9.x。[timo]

  • 将“清空数据库”实现更改为使用“python manage.py flush”而不是删除和重建数据库。[timo]

  • 删除“Debug”和“暂停”关键字。由 robotframework-debuglibrary 提供的“Debug”关键字足够了。[timo]

1.0a5 (2016-02-11)

  • 使中间件部分兼容 Python 3。[timo]

    robotframework-djangolibrary 与 Python 3 不兼容,因为 robotframework-selenium2library 尚未支持 Python 3。不过,您可以通过“pip install robotframework-djangolibrary –no-deps”命令在 Python 3 上安装 robotframwork-djangolibrary,然后使用 Python 2.7 运行测试。[timo]

  • 将 'Framework :: Robot Framework' 类别添加到 setup.py 中。[timo]

1.0a4 (2016-02-05)

  • 对于 Django 1.7.x 及以上版本,使用 'migrate' 代替 'syncdb'。[timo]

1.0a3 (2015-09-28)

  • 将 list_classifiers 添加到 setup.py 中。[timo]

  • 修复用户创建和启动问题。这修复了 #3。[MatthewWilkes]

1.0a2 (2015-06-25)

  • 从 requirements.txt 中移除 Django 和 zest.releaser。这修复了 #2。[timo]

1.0a1 (2015-06-24)

  • 首次发布。[timo]

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

robotframework-djangolibrary-3.1.0.tar.gz (70.7 kB 查看哈希值)

上传时间

支持者: