django - 如何在 Django 测试期间运行 Lighthouse CLI?
问题描述
我想在 Django 测试期间运行 Lighthouse CLI。默认情况下,Django 测试不运行可以响应 HTTP 请求的服务器,因此这是不可能的。
如何在 Django 测试期间运行 Lighthouse CLI?
解决方案
首先,安装 Lighthouse CLI:
$ npm install --save-dev @lhci/cli
然后,修改package.json
以修改该scripts
部分,如下所示:
{
"scripts": {
"lhci": "lhci"
}
}
LiveServerTestCase
您可以使用orStaticLiveStaticTestCase
对响应 HTTP 请求的服务器运行测试,如下所示:
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
import subprocess
class Example(StaticLiveServerTestCase):
def test_example(self):
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'collect', '--url', self.live_server_url, '--no-lighthouserc',
])
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'assert',
])
# Optional:
subprocess.check_call([
'npm', 'run', '--', 'lhci', 'open',
])
现在运行这个命令:
$ python manage.py test
请注意,您可能仍想在生产服务器上测试网站的性能,因为它可能与本地开发人员机器或测试服务器上的网站性能完全不同。
推荐阅读
- c# - 如何将 std_string.i 与 swig c++ 包含到 c#
- html - 根据分配时声明的接口,角度表单输入与数据类型不匹配
- javascript - 谷歌地图集群图像中的不透明度
- oracle - Oracle 进程的 CPU 利用率始终为 100%
- android - 找不到 cardview.jar (androidx.cardview:cardview:1.0.0)
- amazon-web-services - cloudwatch 速率表达式的下一次运行时间
- laravel - Laravel mongodb 事务不回滚
- c# - .NET Core 中的 Nuget 依赖项
- c# - 创建灵活的模型
- c# - 在后面的代码中设置 ListBox 的滚动条可见性