Django的Robot Framework库。
项目描述
简介
DjangoLibrary是一个用于测试Django的Web测试库,使用SeleniumLibrary在真实浏览器实例上运行测试。
库将在运行测试时自动启动和停止您的Django实例。它还包含几个自动登录关键字,允许您在测试期间登录不同的用户,而无需实际访问登录页面。
DjangoLibrary目前已在Django 1.8.x、1.9.x、1.11.x与SQLite和Postgres在Python 2.7和3.6上进行了测试。
文档
安装
使用pip安装robotframework-djangolibrary
$ pip install robotframework-djangolibrary
为了能够使用DjangoLibrary的Autologin、FactoryBoy或QuerySet关键字,您必须将相应的中间件类添加到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)
破坏性更改
依赖 SeleniumLibrary 而不是 Selenium2Library。名称从 Selenium2Library 更改为 SeleniumLibrary。有关详细信息,请参阅 https://github.com/robotframework/SeleniumLibrary/blob/master/docs/SeleniumLibrary-3.0.0.rst#name-changed-from-selenium2library-to-seleniumlibrary。[timo]
新功能
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee2df555462e58691986103297564f31f6bef73ae1212a87506a9a63770474ce |
|
MD5 | 4ce4932c81b80bf11a29f701ce483b03 |
|
BLAKE2b-256 | d7f409014888f58e1dfa50b3e6f4e3cea4cd2e5f2a58364493a66bef322d7364 |