【问题标题】:Django Tests run faster with no internet connectionDjango 测试在没有互联网连接的情况下运行得更快
【发布时间】:2015-03-04 20:22:49
【问题描述】:

我有一个 django 测试套件,它从一个 400 行的夹具文件构建一个数据库。不幸的是,它运行缓慢。每次测试几秒钟。

我昨天在火车上开发,没有互联网接入,我的 wifi 被关闭,我注意到我的测试在没有互联网的情况下运行速度几乎快了 10 倍。他们肯定运行正确。

一切都是本地的,在没有互联网连接的情况下一切都运行良好。测试本身不会触及任何 API 或建立任何其他连接,所以它似乎一定是别的东西。

【问题讨论】:

  • 我遇到了同样的问题。你是怎么解决这个问题的?
  • 我的问题是由于本地主机别名local.dev。它进行 DNS 查询以检查 TLD .dev。我删除了点并解决了问题。
  • 谢谢诺埃尔!我的问题类似,但在本地服务器上。我需要本地主机上的自定义域。编辑主机文件是不够的。必须更改 DNS 设置以使用 localhost 作为顶级 DNS。

标签: python django testing python-unittest


【解决方案1】:

这很可能意味着您安装了一些试图建立网络连接的组件。可能是进行监控或统计收集的东西?

找出发生了什么的最简单方法是使用 tcpdump 捕获您的网络流量并查看发生了什么。为此:

  1. 运行tcpdump -i any(或tcpdump -i en1,如果你在Mac上;机场通常是en1,但你可以通过ifconfig仔细检查)
  2. 观察流量以了解正常情况
  3. 运行您的测试套件
  4. 观察tcpdump 打印的流量,看看是否有什么明显跳出来的东西

【讨论】:

  • 这对你有什么意义吗?对于每个测试,它似乎都是这样运行的:gist.github.com/shaneharter/4283d7a7aa5768d812eb
  • 看起来您正在向内容交付网络发送内容或从内容交付网络获取内容。我不知道该怎么做,但可能与静态文件处理有关?不幸的是,它是 HTTPS,所以除非你安装了 Charles Proxy 之类的东西,否则进一步挖掘会很困难。
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 2012-03-18
  • 1970-01-01
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多