【Python】テストデータ自動作成ツールMimesisのインストール

【Python】テストデータ自動作成ツールMimesisのインストール プログラミング
森津 花梨,青森県,snake1909@example.com
青森 律,長崎県,true1809@example.com
河野 レイ,大阪府,biggest1848@example.com
福地 たくや,長崎県,nvidia2094@example.com
村瀬 ミハル,三重県,caring2085@example.com
乳井 早人,徳島県,resulted1993@example.com
梅本 千景,佐賀県,individually1841@example.com
大田 一輝,香川県,turning2005@example.com
坂上 ユウキ,福島県,bob2085@example.com
有賀 与一,山形県,gage1867@example.com

これを見てどう思いますか?

「個人情報の流出!?」では、ありません。
すべてフェイクです。

この記事では、上記のようなフェイクデータを作成する方法を解説しています。
PythonライブラリのMimesisを使えば、一瞬でデータが出来上がります。

本記事の内容

  • Mimesisとは?
  • Mimesisのシステム要件
  • Mimesisのインストール
  • Mimesisの動作確認

上記に沿って解説していきます。

Mimesisとは?

Mimesis公式
https://mimesis.name/

Mimesisとは、フェイクデータ作成のためのPythonライブラリです。
読み方はミメーシスで、意味は模倣となります。

主には、テストデータ作成での利用が想定されています。
特にユーザマスタの作成では、大活躍しそうです。

また、対応ロケール(地域・言語)は全部で34あります。
もちろん、日本にも対応しています。

パフォーマンスが、類似のFakerと比べるとかなり良いようです。
100万のデータ(フルネーム)を作成した場合の比較を載せておきます。

上記結果より、速度だけではなく、質も高いことが読み取れます。
もちろん、一方的な主張を鵜呑みはできませんけどね。

そうだとして、フェイクデータを作成するのにMimesisは使えそうです。
テストデータの作成は、個人的には好きではありません。

ユーザー001
ユーザー002
ユーザー003
ユーザー004
ユーザー005

こんな具合のデータだと、区別がつきません。
区別できる方が、テストはやりやすいです。

かと言って、次のようなデータは恥ずかしい感じになります。
個人の趣味や嗜好がわかるようなモノは避けたいです。

竈門 炭治郎
竈門 禰豆子
我妻 善逸
嘴平 伊之助
冨岡 義勇

その点、Mimesisは機械的に実在していそうなデータを作成します。
区別もできつつ、個人の色が出ないテストデータを作成できるのです。

以上、Mimesisについて説明しました。

Mimesisのシステム要件

現時点(2022年2月)でのMimesisの最新バージョンは、5.3.0となります。
この最新バージョンは、2022年1月26日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.8
  • Python 3.9
  • Python 3.10

以下は、Python公式開発サイクルです。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python 3.6は、2021年末でサポート終了です。
そのため、Mimesisが対応していないのは納得できます。

しかし、Python 3.7まで対応から外しています。
ここまでサポート状況が厳しいライブラリは、珍しいと言えます。

ここまでをまとめると、Mimesisのシステム要件における注意点は一つです。
Python 3.8以降が必要となります。

以上、Mimesisのシステム要件について説明しました。
次は、Mimesisをインストールします。

Mimesisのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.10.2

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.0.3
setuptools 60.7.1
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Mimesisのインストールです。
Mimesisのインストールは、以下のコマンドとなります。

pip install mimesis

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

$ pip list
Package    Version
---------- -------
mimesis    5.3.0
pip        22.0.3
setuptools 60.7.1
wheel      0.36.2

インストールされたのは、mimesisだけです。
依存関係がなければ、既存環境への導入は容易と言えます。
ただし、Pythonのバージョンには注意です。

以上、Mimesisのインストールを説明しました。
次は、Mimesisの動作確認を行います。

Mimesisの動作確認

最小レベルの動作確認は、次のコードで可能です。

from mimesis import Person

person = Person()
print(person.full_name())

上記を実行すると、次のような表示となります。

Hyon Daugherty

実行する度に、表示される名前が異なります。
動作確認だけだと以上でOKです。

これだと親近感も何もありません。
やはり、日本人の名前の方がしっくりきます。

ということで、日本人の名前が表示されるようにします。

from mimesis import Person
from mimesis.locales import Locale

person = Person(Locale.JA)
print(person.full_name())

上記を実行(5回)すると、次のように表示されます。

まこと 茂木
雅子 園
麗華 是枝
まどか 羽田
さゆり 酒匂

姓名の位置が、英語圏のままです。
full_name関数にオプションを追加します。

print(person.full_name(reverse=True))

この状態で実行(5回)した結果は、以下。

鬼島 こじろう
諸見里 国包
日高 史絵
日野 ふじこ
五反田 ヨウコ

日本人の名前表記になりました。
公式ページのマニュアルを見れば、大体やりたいことはできるでしょう。

動作確認に関しては、以上とします。
最後に、冒頭で示した個人情報のフェイクを作成するコードを載せておきます。

from mimesis import Person
from mimesis import Address
from mimesis.locales import Locale

for i in range(10):

    person = Person(Locale.JA)
    address = Address(locale=Locale.JA)

    print(person.full_name(reverse=True), end=",")
    print(address.region(), end=",")
    print(person.email(domains=['example.com']))

なお、メールアドレスに関しては、ドメインを制限しています。
制限しないと、本当に存在していそうなメールアドレスが作成されます。

それは、個人情報を晒しているようで気持ちの良いモノではありません。

タイトルとURLをコピーしました