news 2026/9/29 5:15:11

webman框架虚拟数据填充fakerphp/faker插件的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
webman框架虚拟数据填充fakerphp/faker插件的使用

一、使用背景
作为一名研发人员,想要批量制造一些测试数据,无论是自己测试,还是方便测试同学,都是有益的。fakerphp/faker插件可满足你的一些需求,它可以生成接近真实数据的一些虚拟数据,带来的体验感更好。

二、插件安装
参考Packagist插件市场:
在终端执行命令,并且可以指定对应的版本,选择不同的版本需要注意不同版本对php版本的要求:

插件安装完毕,查看扩展包目录:

三、框架内使用
webman框架可以自定义终端命令,执行如下:

app/Command下生成目录文件:

四、代码展示

引入安装的扩展库Faker\Factory,创建生成器实例,即可使用插件的属性如name,address,email,phoneNumber等等,在for循环里制定生成的数据个数
<?phpnamespaceapp\command;useapp\model\OrderCopy;useFaker\Factory;useSymfony\Component\Console\Command\Command;useSymfony\Component\Console\Input\InputInterface;useSymfony\Component\Console\Input\InputArgument;useSymfony\Component\Console\Output\OutputInterface;classFakeDataCreateextendsCommand{protectedstaticstring$defaultName='fakeData:create';protectedstaticstring$defaultDescription='fakeData create';/** * @return void */protectedfunctionconfigure():void{$this->addArgument('name',InputArgument::OPTIONAL,'Name description');}/** * @param InputInterface $input * @param OutputInterface $output * @return int */protectedfunctionexecute(InputInterface$input,OutputInterface$output):int{$output->writeln('start fakeData:create');$faker=Factory::create('zh_CN');// 创建生成器实例$users=[];for($i=0;$i<100;$i++){$users[]=['school_id'=>1,'canteen_id'=>2,'stall_id'=>9,'user_name'=>$faker->name,'email'=>$faker->unique()->email,'address'=>$faker->address(),'mobile'=>$faker->phoneNumber,'sn'=>'MO'.date('YmdHis',time()).$faker->numerify('########'),'amount'=>$faker->randomFloat($nbMaxDecimals=2,$min=0,$max=100),'amount_real'=>$faker->randomFloat(nbMaxDecimals:2,min:0,max:100),];}// 批量插入数据OrderCopy::insert($users);$output->writeln('end fakeData:create');returnself::SUCCESS;}}

五、执行命令

六、查看测试数据

七、总结
相比自己创建的测试数据,还是真实一些,对于后续测试,表查询效率,索引是否生效都有积极的意义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!