django项目e2e测试的远程场景设置
django-remote-scenario的Python项目详细描述
Django项目E2E测试的远程场景设置
快速启动
安装django远程场景:
pip install django-remote-scenario
然后将其添加到现有的Django项目:
INSTALLED_APPS = [ ... django_rs
在设置文件中,还需要添加以下内容:
SETTINGS_FILE_PATH = __file__
您需要将django的url添加到项目url文件中,如下所示:
urlpatterns = patterns('', ... url(r'^drs/', include('django_rs.urls')), .. )
要创建自定义方案,只需在应用程序中创建名为“scenarios”的目录 ,然后添加任意多个要实现的方案的文件,并创建一个初始化py,使其成为一个模块 是的。在每个文件中,需要实现main()函数 设置要为场景创建的模型,可以手动创建它们 或者使用类似django_dynamic_fixtureshttps://github.com/paulocheque/django-dynamic-fixture
一旦一切就绪,以这种方式启动服务器,这将启用场景的动态调用:
python manage.py rune2eserver initial_data.json
注意:您需要传递一个初始fixture文件,其中包含数据的基本信息。
也可以(但不是强制性的)传递特定的设置文件,用于测试目的, 如果您想使用不同的数据库进行测试,例如:
python manage.py rune2eserver initial_data.json --settings=demoproject.test_settings [fixture1 fixture2....] [--addrport ipaddress:port]
您还可以使用现有的数据库,用“-跳过测试DB”或“-T”修饰符来加载上面的场景:
python manage.py rune2eserver -t initial_data.json
要开始使用它,只需转到以下URL即可:
http://127.0.0.1:8000/drs/[APPLICATION]/[SCENARIO]
这样做之后,数据库将填充您在 脚本。考虑到,每次调用场景时,所有其他数据 数据库中的数据将被删除,除了初始数据fixture文件中的数据,wich 再次加载,以及调用命令时作为参数传递的。
在这个存储库中,您将发现一个demo django项目使用 设置四个对象的方案。像这样使用:
首先运行服务器:
$ python manage.py rune2eserver initial_data.json --settings=demoproject.test_settings
然后转到浏览器并设置一个方案:
http://127.0.0.1:8000/drs/demoapp/scenario_1
您还可以传递一个参数以避免在特定调用时刷新数据库:
http://127.0.0.1:8000/drs/demoapp/scenario_1/?flush=0
稍后您可以在以下URL上看到结果:
http://127.0.0.1:8000/demoapp/
模拟
可以在场景调用之间模拟后端部分。你需要在里面添加一个新目录 scenarios目录并将其命名为ir'mocks',然后,再次,添加您想要实现的任意多个mocks,并创建一个'uuu init'.py,使其成为一个模块 是的。在每个文件里。您可以根据需要应用任意多个模拟,并可选择停用它们。请特别注意应用此模拟的顺序,因为它可能会影响它们的内部行为。
要应用mock,只需转到以下url(在demoapp/mocks中添加名为mock_1的文件)
http://127.0.0.1:8000/drs/demoapp/mocks/mock_1?activate=1
要删除模拟:
http://127.0.0.1:8000/drs/demoapp/mocks/mock_1?activate=0
模拟的示例可以在测试应用程序中找到
可浏览界面
通过访问drs的根url(在本例中为/drs/)
http://127.0.0.1:8000/drs/
功能
- 待办事项
历史记录
0.1.0(2014-05-31)
- pypi上的第一个版本。