【问题标题】:Django with splinter and phantomjs is painfully slow带有 splinter 和 phantomjs 的 Django 非常缓慢
【发布时间】:2014-01-11 18:53:32
【问题描述】:

今天我尝试将 django 的 LiveServerTestCasesplinterphantomjs webdriver 结合起来。

这是我的工作(简化版):

class Test(LiveServerTestCase):

    def setUp(self):
        self.browser = Browser('phantomjs')

    def tearDown(self):
        self.browser.quit()

    def test(self):
        self.browser.visit(self.live_server_url)
        self.assertIn("Hello world!", self.browser.title)

有时测试运行良好 - 即使每个测试方法需要一秒钟才能执行。但有时,执行单个测试方法可能随机花费约 100 秒,或者它只是冻结,直到我没有耐心等待它完成。

我使用django_nose 作为测试运行程序,并将--liveserver=localhost:8081-8181 端口范围传递给./manage.py test 命令。

有什么方法可以加快速度吗?还有其他更快的网络测试运行器吗?

默认网络驱动程序在速度方面似乎更可靠(每个测试方法 1-3 秒),但它仍然很慢。我也更喜欢无头浏览器进行测试。

【问题讨论】:

    标签: python django selenium phantomjs splinter


    【解决方案1】:

    使测试变慢的原因是在每次测试时打开和关闭浏览器。改善测试时间的一种方法是打开浏览器一次。您可以使用 setUpClass 和 tearDownClass 来完成。

    【讨论】:

    • 我没有对此进行测试,但这对我来说听起来很有效。接受答案。
    • 这实际上可能不是问题。该问题询问完成时间超过 100 秒的测试。该问题更可能与 LiveTestServer 只有一个线程这一事实有关,如果它被阻止,则无法继续。
    猜你喜欢
    • 2016-05-23
    • 2020-08-26
    • 2010-10-24
    • 2017-09-24
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    相关资源
    最近更新 更多