月別アーカイブ: 2014年10月

JMeterでリクエスト自動化

やりたかったこと

クライアントのサーバーで0byteのキャッシュファイルが生成されたりするとのこと。キャッシュファイルの数が多くなることや、アクセスが集中することでおかしなことが起きているのかもしれない、とにかく本番サーバー並にいろんなページにアクセスしてキャッシュファイルを増やさないといけないと思ったわけです。

JMeterとは

ApacheSoftwareFoundationで進行しているパフォーマンス計測用のJavaアプリプロジェクト。デスクトップGUIで設定するので比較的操作は簡単だし、100%ピュアJavaなのでWindowsでもMacでも同じものが動く、イケているアプリです。
似たのでSeleniumがありますね。Seleniumの方はJavascriptのチェックができたりよりWEBアプリに特化していて、JMeterはWEBアプリ以外にもFTPとかMailとかテスト出来て敷居も低い感じがします。

アパッチのログから再現(リプレイ)する

まずはJMeterをダウンロードします。

JMeterの公式サイトの「Download Releases」と書かれたリンクから最新バイナリ(.zip)を落として解凍しました。解凍されたフォルダのbin/ApacheJMeter.jarを実行するとJMeterが開きました。

最初はログをCSVに変換して読み込ませたり試していたのですが、わたし、気づいてしまいました、「Access Log Sampler」が用意されていることに。

まず左のペインメニューのテスト計画を右クリックしてスレッドグループを追加します。

スレッドグループ

スレッド数というのは同時接続しているユーザー、RampUpというのは1ユーザーのアクセスする間隔秒数、てな理解でよろしいかと。正確にRampUpの秒数待つということではなくて、指定した秒数内にスレッドを散らしてくれるみたい。0にすると同時接続です。スレッドが10なら、ほぼ同時に10個リクエストするということ。
ループ数はログの記録数÷スレッド数を指定しておきました。

次にスレッドグループを同じように右クリックして「Access Log Sampler」を追加します。
続けて「結果をツリーで表示」「結果を表示表示」「グラフ表示」を追加しておきました。この結果は実行中、リアルタイムで見られるしかなり見やすいです。好きなものを使ってください。

追加したAccess Log Samplerを左ペインで選択すると右ペインで細かい設定ができます。
名前とコメントはそのまま、ServerにはIPまたはホスト名を入れます。
Portはデフォルトが80なのでそのまま。ParseImagesはTrueにするとHTMLを解析してページ内の画像を読み込むようなのですがFalseにしておきます。
PluginClassesのParserはTcLogParserだと10個の同時スレッドがアクセスログの同じ一行を読み込むためOrderPreservingLogParserかSharedTcLogParserにしておきました。
FilterはとりあえずLogFilterを選びましたがよく分かっていません。SessionFilterはCookieを使うみたいですが、今回はどっちでもいいですね。
LogFilesでアクセスログを指定してください。

後は実行して結果を眺めていると良いです。

 

不満点とか

アクセスする順番とか、時間を完全再現するのは出来ませんでした。いい方法があるのかもしれませんが…。sleniumだと出来たかなぁ?今回の計測だとログインしたユーザーの遷移を追いかけたりはしないので充分ではありました。

しかし操作がけっこう簡単。特にアクセス・ログが簡単に読み込めるとは驚きました。これならしばらく時間をおいて忘れてても使えるんじゃないでしょうか。

参考:

AccessLogSamplerのチュートリアル(pdf)

今から3分で jmeter の使い方を身に付ける  (負荷テスト入門)

 

最強の家庭用ゲーム機WiiUを買いました

去年の年末に、7歳の娘の誕生日プレゼントに家庭用ゲーム機WiiUを買いました。

すごい満足してます。ニュースやインターネット掲示板には任天堂苦戦とか、WiiUオワコン、みたいに言われてますが実際に遊んでいる層はそう思ってないんじゃないかなぁと思いますよ。

憧れの次世代機、どれを買ったらいいか悩みますね

我が家はこれまでゲームはPS2で止まっていました。PS2はプレイステーションのゲームもできるし、物足りない時はセガサターンをだして遊んだりしていました。前世紀のゲーム(1990年代ですからね・・・!)を遊びながらも、心は次世代機のゲームに惹かれていたのも事実。ああ、最新の3D技術が惜しみなく使われたハイパーリアルなゲームをプレイしたい・・・!しかし子供が大きくなるまでは我慢っ・・・!

そしてとうとう、、、次世代機購入!1年前より娘にはゲームプレイ動画をみせ、徐々にその気にさせゲーム機が欲しいと言わせる用意周到な作戦。選択肢はPS3、Xbox360、WiiU、3DS、PlaystationVita、さらには投入されたばかりのPS4、XboxOne!3DOとかジャガーみたいな値段が高いけどソフトが全く供給されないハズレハードもなし、あぁ、どれを買ったらいいのか。

うちには7歳と4歳の子がいるので、条件は子どもたちみんなが遊べることでした。そして父ちゃんも一緒に遊べないとだめなのです。なので携帯ゲーム機はダメです。一番コストパフォーマンスがいいのは3DSなのは事実ですが、ここで誘惑に負けてはいけません。子供はトモダチコレクションやりたさにずっと3DS、3DSと取り憑かれたかのように風呂で、就寝時、起きがけにまで言い続けていましたが、あれは悪魔のゲーム機だ、おばあちゃんの誕生日パーティにまで一人黙々とゲームをしている、そんな子をどう思うのか、目はうつろ、手足はしびれ、いづれ地獄に落とされるのだと諭すのに苦労しました。

一番惹かれたのはXBoxのキネクトでした。キネクトは真に革新的、そして、開発者キットがあるのでプログラムして遊ぶことができる、技術者魂を揺さぶるガジェットです。ただ目玉が飛び出るほど値段が高く(本体と合わせて5万円を越える)、対応ゲームも少ないのです。

次にPS3、ないしは4をみてみました。今やPSは王道。国内ゲームフリーク必携ハード、そして地味に良いのがブルーレイディスクが読めるということ。ただゲームのラインナップを見ると子供向けのものがほとんど見当たらない…!プレイステーションの頃はもうちょっとバランス良かった気がするんですが、これも、時代よねー。

最後にWiiU。1年経過しているにも関わらず、ゲームのラインナップが少ないことに驚き。しかしほとんどが子供向け、良質なパーティゲームが豊富で目的に叶っている…!これだ、これしかない。購入です。

小さい子供が遊べるのはWiiU、でもセッテイングは大人の助けは必要

WiiUを買って最初に驚いたのがニンテンドーIDが必要なこと。メールアドレスが必要になってきます。これも時代よねー。登録しただけアカウントが作れて、セーブデータなどもアカウントごとに管理されます。最初はめんどいですが、アカウントにパスワードをかけて購入用のアカウントに子供が入れないようにできたりするので良いです。
次にWiiUの最大の特徴、ゲームパッド。これはいろいろすごいです。まずでかい。本当にでかいです。そして本体に1台しか登録できません。ゲームパッドを複数台つかってトランプや麻雀が出来ると思っていたのでこれは意外でした。
ゲームパッドができる事は非常に多いです。ゲームパッドから音が鳴ってテレビの音とシンクロしたり、タッチでの操作、別画面の表示、これはとてつもなく可能性が大きいし、逆に言えば作り手側の負担がすごいだろうと思います。WiiUのゲーム開発が時間がかかるのは、画面解像度が高いとかじゃなくてゲームパッド用の作り込みが大変なんじゃないだろうかと思います。

最初にファミリーパックを買ったので、同梱されていたのがNewスーパーマリオブラザーズUとWiiPartyU。どっちも素晴らしい出来です。Wiiの時のリモコンは子供には操作がちょっと難しいかな、と思っていたのですが、ゲームパッドでタッチしてお助けしたりするのは4歳の子でもできます。ゲームパッドは小さい子にとっても親和性が高いんです。

それからWiiのゲームも遊べるということで「街へ行こうよどうぶつの森」と、オープンワールドのゲームがしたかったのでUBISoftの「アサシンクリード3」を買いました。どっちもかなり長く遊べますね。

極めつけは「マリオカート8」ですね。最強の接待ゲームでした。これは家族みんなで遊べます。小学生の男の子がうちによく遊びに来るようになってしまいました。このゲームは特典として無料で2本のソフトを1ヶ月遊べる権利がついていて、今はピクミン3をやっています。

WiiUのゲームはとにかく良質で家族で遊べるものが多いです。他のゲーム機だとお父ちゃん専用ゲーム機になってしまったかもしれません。ちょっとそれを考えると恐ろしいですね。今頃ゲーム機と一緒に海に沈められていたかもしれません。
これからもWiiUにはどんどん面白いゲームがでるし、まだまだWiiUにできることの半分も経験していないと思うのでこれからが楽しみです。