ホームページ >バックエンド開発 >PHPチュートリアル >Fakerを使用して、自動テスト用のフィラーデータを生成します

Fakerを使用して、自動テスト用のフィラーデータを生成します

Christopher Nolan
Christopher Nolanオリジナル
2025-02-26 11:47:17636ブラウズ

Using Faker to Generate Filler Data for Automated Testing

多くのWebサイトやアプリケーションの開発には、実際の生活の仕組みをシミュレートするためにさまざまな種類のデータが必要です。プロジェクトのテストおよび開発段階では、偽のデータを使用してデータベース、UI要素などを埋めることがよくあります。

プロジェクトの偽のデータを生成するために独自のコードを書くことは非常に面倒です。このチュートリアルでは、PHPの実績のあるFakerライブラリを使用して偽のデータを生成する方法を学びます。

初心者

続行する前に、いくつかのポイントを明確にしたいと思います。

元の偽のライブラリはfzaninotto/fakerでした。ただし、2020年12月11日に所有者によってアーカイブされました。現在、FakerPhp/Fakerと呼ばれる図書館支部は、開発作業を継続しています。プロジェクトで使用する必要があるものを決定しようとしている場合は、FakerPhpを選択してください。

FakerPhpのFakerでは、PHPバージョンが7.4以上であることを要求しています。これは、元のライブラリによってサポートされているphp> = 5.3.3とは対照的です。

これから、このチュートリアルのFakerへのすべての参照は、新しいブランチバージョンを参照します。

次のコマンドを実行して、Composerを使用してFakerをインストールできます。

これにより、
<code>composer require fakerphp/faker</code>
composer.json

ファイルが作成され、ベンダーディレクトリに必要なすべてのパッケージがインストールされます。 インストールが完了したら、これらの2つの行をコードに追加することで、プロジェクトのライブラリの使用を開始できます。

最初の行には、プロジェクトにFaker Libraryが含まれています。

2行目では、ジェネレーターインスタンスの静的工場クラスへの呼び出しを使用して、Fakerジェネレーターを初期化し、さまざまな偽データを生成するために使用できます。
<code class="language-php">require 'vendor/autoload.php';
$faker = Faker\Factory::create();</code>

偽名、住所、電話番号を生成します

プロバイダーオブジェクトは、ランダムデータを生成するために使用されます。デフォルトのプロバイダーにバンドルしたジェネレーターインスタンスへの呼び出し。

デフォルトのプロバイダーは、米国に基づいて名前、住所、電話番号、会社の詳細などを生成します。これらの呼び出しは、バックグラウンドでプロバイダーを追加します:

名前属性を呼び出すだけで、Fakerで偽の名前を生成できます。各呼び出しは、異なるランダム名を出力します。例は次のとおりです。

<code class="language-php">$faker = new Faker\Generator();
$faker->addProvider(new Faker\Provider\en_US\Person($faker));
$faker->addProvider(new Faker\Provider\en_US\Address($faker));
$faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker));
$faker->addProvider(new Faker\Provider\en_US\Company($faker));
$faker->addProvider(new Faker\Provider\Lorem($faker));
$faker->addProvider(new Faker\Provider\Internet($faker));</code>
フルネームに興味がない場合は、最初の名前または姓のみをリクエストすることもできます。

<code class="language-php">require 'vendor/autoload.php';
$faker = Faker\Factory::create();

$fake_names = [];
for($i = 0; $i < 10; $i++){
    $fake_names[] = $faker->name;
}

/*
Array
(
    [0] => Gabe Mann Jr.
    [1] => Lazaro Leuschke
    [2] => Angie Welch Sr.
    [3] => Prof. Kirk Krajcik III
    [4] => Sadye Mosciski
    [5] => Danyka Braun
    [6] => Jacinthe Dickinson
    [7] => Clifton Beahan
    [8] => Dr. Jan Casper MD
    [9] => Adelia Schimmel
)
*/
print_r($fake_names);</code>
男性または女性の名前のみが必要だと仮定します。この場合、FirstnameMale()およびaddress()メソッドを呼び出すか、PhoneNumber()、PhoneNumberWithExtension()を呼び出すことができます。

<code class="language-php">require 'vendor/autoload.php';
$faker = Faker\Factory::create();

$first_names = [];
for($i = 0; $i < 10; $i++){
    $first_names[] = $faker->firstName;
}

// Outputs: Dylan, Ariane, Doris, Reilly, Jamar, Merl, Maverick, Frederik, Lucius, Madyson
echo implode(', ', $first_names);</code>
ロケール設定に固有の偽の詳細を生成

特定の地域をターゲットにしたアプリケーションを開発しているとします。この場合、ターゲット市場を反映するデータを使用することができます。たとえば、ナイジェリア人のための申請は、ナイジェリアの名前を所有することから恩恵を受けます。同様に、インドのユーザー向けのアプリケーションは、インドの住所を使用したい場合があります。
<code class="language-php">require 'vendor/autoload.php';
$faker = Faker\Factory::create();

/*
Phone Number: +1-724-494-3101
Phone Number (Extension): (475) 499-3999 x9969
Phone Number (Toll Free): 855.618.0155

Phone Number: 1-660-934-8668
Phone Number (Extension): 351-533-3301 x1602
Phone Number (Toll Free): 844-530-4671
*/
for($i = 0; $i < 2; $i++){
    echo "Phone Number: ".$faker->phoneNumber()."\n";
    echo "Phone Number (Extension): ".$faker->phoneNumberWithExtension()."\n";
    echo "Phone Number (Toll Free): ".$faker->tollFreePhoneNumber()."\n\n";
}</code>

ロケール固有のデータを生成するトリックは、ロケールをランダムナンバー()メソッドに渡すことです。デフォルトでは、指定された数字の数字でランダム数を生成します。 UNIXTIME()メソッドを渡して、UNIXタイムスタンプ値を0から現在の時間、または指定された時間の間に取得できます。ランダムDateTime()メソッドも生成できます。繰り返しますが、デフォルトの最大値は現在の日付と時刻です。

DateTimead()メソッドを生成する場合、1月1日、1、指定された最大値の日付を返します。

Time()メソッドを使用して、特定の形式でランダムな日付と時間を生成できます。

dateTimeBetWeen()メソッドを取得する必要があると仮定します。

<code>composer require fakerphp/faker</code>
偽のデータを使用してタグを生成します

Fakerを使用してさまざまなタイプの数値値を生成する方法がわかったので、結果を組み合わせてXMLまたはHTMLドキュメントを作成し、データベースを数値値で埋めるなどします。たとえば、さまざまな人にランダムな構成ファイルを生成する次のコードを検討します。

<code class="language-php">require 'vendor/autoload.php';
$faker = Faker\Factory::create();</code>
ランダム値を生成した後、それらに何でもできます。この場合、ベースクラスにそれらを出力して、必要なデータ型を生成します。ランダムデータを生成するライブラリを探している場合、Fakerは間違いなく試してみる価値があります。

以上がFakerを使用して、自動テスト用のフィラーデータを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。