我正在转向使用codeception 2.0.3在我正在开发的各种Web平台上进行一些测试。我开始做一些验收测试。主要检查页面确定和做一些表单完成(登录,注册,没有花哨)。
我一直在使用firefox浏览器监控测试,现在我们正在将测试转移到专用服务器上,所以我切换到phantomjs作为我的测试浏览器。
在acceptance.suite.yml中配置
WebDriver:
url: 'localUrl'
browser: phantomjs
window_size: 'maximize'
capabilities:
phantomjs.cli.args: ['--ignore-ssl-errors=true']
问题是,通过这种无头配置,测试运行速度非常慢。我的意思是,我写的测试是检查四个链接是否正常(没有错误或异常消息)没有任何花哨的断言(我可以在不到20秒的时间内检查)并且它花了超过一分钟的时间。
我在测试堆栈的配置中遗漏了什么?我读到phantomjs以这种方式进行测试的目的是提供快速可靠的东西,这些东西可以在开发过程中集成,但我似乎并没有让它正常工作。我一直在使用Smalltalk进行TDD,也许我对这种环境中的工作方式有点偏颇,所以也许我的期望值太高但我希望这可能会更快,更容易实现。
我在使用php 5.5的linux机器上使用带有phantomjs 1.9.7的codeception 2.0.3。
欢迎任何建议。感谢!!!
答案 0 :(得分:2)
我的运行测试非常慢,并开始使用严格的定位器。这加快了很多事情。
而不是写作:
$I->fillField('username, 'john');
在实际工作之前尝试失败许多定位器类型,指定你正在使用的定位器并写:
$I->fillField(['id' => 'username'], 'john');
或
$I->fillField(['class' => 'username'], 'john');
或
$I->fillField(['css' => 'input .username'], 'john');
答案 1 :(得分:1)
可能是phantomjs的问题,通常无头的Codeception PhpBrowser非常快,尝试切换到它。
对于浏览器中的尝试使用Codeception WebDriver +最新的selenium 2独立版。
此外,如果您正在使用某个框架进行开发,则可以检查它是否存在于Codeception模块列表中。如果是这样你可以使用它,它运行速度比PhpBrowser快得多,因为它不需要任何服务器,并且可以使用symfony dom - crawler和browser - kit。
答案 2 :(得分:0)
数据库sql文件的大小也很重要。在我的情况下,导入一些大表会导致额外的时间超过一分钟。