【发布时间】:2020-01-25 13:35:02
【问题描述】:
Laravel 提供了一项功能,允许您创建在首次运行时启动应用程序所需的通用数据。种子通常包含国家列表、成分、用户角色,甚至可能是默认用户。
在编写测试时,您还可以使用 Faker 等创建临时数据集。
这两个功能都很棒,非常适合用途。
但是,有时我们需要对包含数十个表和数百或数千行数据(甚至数十万行)的 Laravel Web 应用程序进行手动测试。例如,如果我们要对 Web 应用程序进行负载测试,我们需要生成所有这些数据(而不是使用实际的生产数据)。
我想修改 artisan migrate --seed 命令以包含 --scenario=loadtesting 以告诉 Laravel 使用哪些种子文件,或者能够在种子文件中设置一个标记为 if ( 'loadtesting' == $scenario ) { $rows = 1000000; }。
我查看了 Illuminate 文件夹(嗯,Illuminate 的子文件夹)中的 Seeder.php 类,但我没有看到任何中断种子创建过程流程的机会。
我想知道是否有人可以详细说明实现上述功能所需的步骤而不覆盖 Laravel 文件(确切地说,是供应商中的任何内容)。我怀疑Faker's ORM features 可以在推荐的任何解决方案中发挥关键作用。
提前致谢。
【问题讨论】: