[AWS] EC2をPingに応答させる

運用中サイトをクラウドVPSからEC2に移行した途端にNagiosがエラーを吐き始めた。サーバーがPingに反応しないという。

おかしいなーと調べたら、EC2のSecurity GroupのInboundルール定義に問題あり。ICMPを通すように記述しておかないとPingに反応しないらしい。

以下のルールを追加して解決。

Security Group/Inbound
– Type: All ICMP – IPv4
– Protocol: ICMP
– Port Range: 0-65535
– Source: Custom 0.0.0.0/0

[Unix] digコマンドリファレンス

【 dig 】コマンド――ドメイン名からIPアドレスを調べる:Linux基本コマンドTips(158) – @IT
http://www.atmarkit.co.jp/ait/articles/1711/09/news020.html

DNSサーバーが正常に動作しているかどうか確認するには? digコマンド:ネットワーク管理の基本Tips – @IT
http://www.atmarkit.co.jp/ait/articles/1409/25/news001.html

奥が深いDNSサーバーとdigコマンド
https://qiita.com/hypermkt/items/610b5042d290348a9dfa

[MFC] ログをファイルに出力する

参考サイト

CStdioFile Class
https://msdn.microsoft.com/en-us/library/a499td6y.aspx

[C#] WinAppDriver/UIRecorderを試す

UI Recorderという、テスト自動化のためのツールが公開されたらしい。UI Recorderを使うと、操作手順をキャプチャしてC#のコードを生成してくれるみたい。試してみる。

Microsoft、オープンソースの自動UIテストスクリプトツール「WinAppDriver UI Recorder」を公開:自動UIテストのスクリプトを簡単に作成できる – @IT
http://www.atmarkit.co.jp/ait/articles/1806/22/news036.html

WinAppDriver/Tools/UIRecorder at master · Microsoft/WinAppDriver · GitHub
https://github.com/Microsoft/WinAppDriver/tree/master/Tools/UIRecorder

UI Recorderのビルド

1. リポジトリのクローニング

2. VS2017でソリューションファイルを開く
WinAppDriver\Tools\UIRecorder\WinAppDriverUIRecorder.sln

3. ビルド

ビルドしたらエラーが出た。

プロジェクトにアサインされているバージョンのWindows SDKがこのマシン上には存在しないので、ソリューションを右クリックして[Retarget solution]を選択し、存在するバージョンに変更する。

再ビルドして成功。

UI操作を記録する

Windowsの電卓を操作して記録してみる。

1. UI Recorderを実行する。
2. [Record]ボタンをクリックして電卓アプリを操作する。
3. 操作完了したら[Stop Recording]ボタンをクリックする。
4. [C# Code]タブに操作内容のC#コードが生成される。

自動化アプリを作成する

前処理 (WinAppDriverの起動やセッションの確立処理など)部分は参考サイトのコードをそのままコピペさせてもらって、それに続けてUIRecorderが生成したC#のコードを貼りつける。

1. プロジェクト作成 Console App (.NET Framework)
2. NuGetでAppium.WebDriver をインストールする
3. コーディング

XPathはそのままだとNot Foundになるので、以下のように編集した。

編集前

編集後

4. ビルドして実行

アプリが自動実行された。

参考サイト

WinAppDriver UI Recorderを試してみました。 | 初心者備忘録
https://www.ka-net.org/blog/?p=10504

[C#] WinAppDriverを試す

Windows Application Driverは、WindowsアプリケーションにおけるSeleniumライクなUIテストオートメーションをサポートするサービス。このサービスは、Windows 10 PCを使ったUniversal Windows Platform (UWP)及びClassic Windows (Win32)アプリのテストをサポートしている。

GitHubで公開されているので試してみる。

GitHub – Microsoft/WinAppDriver: Windows Application Driver
https://github.com/Microsoft/WinAppDriver

セットアップ

1. ダウンロード https://github.com/Microsoft/WinAppDriver/releases
2. インストール
3. 実行する C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe

電卓アプリを自動操作するサンプルを試す

1. VS2017でSamples\C#\CalculatorTest.slnを開く
2. Test > Windows > Test Explorer を選択
3. Run All を選択してテスト実行

電卓アプリが自動で動くのが確認できた。

参考サイト

WinAppDriver: Selenium に似た Appium のテストを使用して、Windows であらゆるアプリのテストを実行 – Visual Studio 日本チーム Blog
https://blogs.msdn.microsoft.com/visualstudio_jpn/2016/12/02/winappdrivertestanyappwithappiumsseleniumliketestsonwindows/

[C#] テスト自動化ライブラリFriendlyを試す

Windowsアプリのテスト自動化ツールを探していたらFriendlyというオープンソースのライブラリが見つかった。どういう仕組みで動くのか試してみたい。このライブラリに言及した記事を探したら以下がヒット。書かれたのは2014年と古い記事なので、この記事をなぞって自分で試してみる。

Friendlyエバンジェリストはミニスカサンタ – xin9le.net
http://blog.xin9le.net/entry/2014/12/22/000057

なお、本家リポジトリはこちら。

GitHub – Codeer-Software/Friendly
https://github.com/Codeer-Software/Friendly

SampleApp (ターゲットアプリ) 作成

– Windows Form App (.NET Framework)
– テスト用にプロパティとメソッドを追加

Form1.cs

TestApp (テストアプリ) 作成

– Console App (.NET Framework)
– Manage NuGet Packages…
– Codeer.Friendly by Codeer v.2.5.2
– Codeer.Friendly.Windows by Codeer v.2.9.0

Program.cs

ビルドして実行。TestAppからSampleAppのプロパティにアクセスしたり、メソッドを呼び出すことができた。そういう風にして外部アプリからターゲットアプリを操作して自動テストを行う仕組みらしい。

商用ツールにはテストケースをUIを使って定義できるものがあるが数十万円のコストがかかる。それに対して、Friendlyはテストケースをコーディングする手間がかかるけどオープンソースなので無料で使える。役立つシーンはありそうだ。

[EC-CUBE] テンプレートアップロード時の「ファイルのサイズが大きすぎます」対処法

新規テンプレートアップロード時に以下のメッセージが表示されるとき。

ファイルのサイズが大きすぎます。有効な最大サイズは2 MiBです。

html/.htaccess

参考サイト

ECCUBEでアップロードできない。upload_max_filesizeを設定する場所 | エス技研
https://blog.s-giken.net/183.html

[MySQL] phpMyAdminの接続先を変更する

参考サイト

MySQL : phpMyAdminの接続先を変更 | DN-Web64
http://www.dn-web64.com/archives/web/phpmyadmin_setting/

kakakikikekeのブログ: phpMyAdminで接続先のDBを変更する方法
https://kakakikikeke.blogspot.com/2012/11/phpmyadmindb.html

[Node.js] PM2リファレンス

バックグラウンドで実行中のnodeをkillしても勝手に生き返ってしまう。

なんでだーと思ったらPM2というNode.jsスクリプトをデーモン化するツールが使われていましたとさ。

参考サイト

node.js node.jsスクリプトをpm2でデーモン化する -でじうぃき
http://onlineconsultant.jp/pukiwiki/?node.js%20node.js%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92pm2%E3%81%A7%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%E5%8C%96%E3%81%99%E3%82%8B