フォームのバリデーションテスト用入力を自動化

何ができるか?

フォームのバリデーションチェックのための記入を、スクリプトを使って自動化できる

なぜテストを書いて対応しないの?

スクリプトでのバリデーションと、JavaScript を使ったリアルタイムバリデーションを2重に行っているから、それぞれのテストを書くよりフォーム自動入力を使って作業コストを省いている

利用するアプリ

UWSC

UWSC は何ができるか?

Windows の操作を自動化できる

本件では何を行うか

文字入力、ラジオボタンやセレクトボックスを選択して、それぞれに合ったフォームを埋める

事例

次のようにならんだ項目を埋める

  • 名前
  • 名前カタカナ
  • メールアドレス
  • 電話番号
  • ラジオボタン
  • セレクトボックス
  • チェックボックス

form_insert.UWS

 

使い方

UWSC で上記のファイルを開き、入力を埋めたいフォームの最初を選択、[CTRL + F1]、またはUWSC の「再生」ボタンを押して、フォームを埋める

WordPress で運用している複数のサイトの記事を、別のサイトに読み込んで表示する方法

何ができるか?

WordPress で運用している複数のサイトの記事を、別のサイトに読み込んで表示できる。

WordPress のテンプレートタグは使えないのか?

「複数サイト」という条件があると、使えない。

PHP でこれを付けると、同じドメインに限り記事を読み込めるが、「複数サイト」で読み込む方法が見つからなかった。

方法

jQuery で、WordPress のJSON を読み込む

“http://www.hogehoge.com/wp1/” にWordPress がインストールされている場合、次のURL でアクセスすると、JSON が取得できる。

“posts”以降の記述は、”_embed”で写真データを要求、”per_page=3” で記事を3つ取得

HTML の表示部分

JavaScript コード

複数ブログを読み込む

HTML の表示部分

JavaScript コード

Google 検索から特定のサイトを村八分にしたい

この記事のように設定すると、Chrome を使ってゲーム攻略のためにGoogle 検索しても、GameWith のサイトが検索結果に出てこなくなる。

条件

Google Chrome を使う
Google Chrome

手順

1) Chrome 拡張機能、”Personal blocklist“をインストールする

Personal blocklist

2) ブラウザ右上に表示されたPersonal blocklist のアイコンをクリックして、「インポート」をクリック
2) ブラウザ右上に表示されたPersonal blocklist のアイコンをクリックして、「インポート」をクリック

3) 該当サイトのURL を入力して「インポート」をクリック
3) 該当サイトのURL を入力して「インポート」をクリック(改行すると、複数サイトを検索除外できる)

(改行すると、複数サイトを検索除外できる)

4) インポートが完了
インポートが完了

設定前

「MHW 英雄の龍脈石」検索すると、該当サイトが表示されている
「MHW 英雄の龍脈石」検索すると、該当サイトが表示されている

設定後

検索結果から、該当サイトの検索結果が除外されている
検索結果から、該当サイトの検索結果が除外されている

「Personal Blocklist 拡張機能によって一部の検索結果が除外されています。 (表示).」の表示をクリックすると、除外された検索結果が閲覧できる。
「Personal Blocklist 拡張機能によって一部の検索結果が除外されています。 (表示).」の表示をクリックすると、除外された検索結果が閲覧できる。

備考

スマートフォンのChrome には、この拡張機能が対応していないのが惜しい。

Excel の表からHTML を書きたい

クライアントからリストを渡されて、それをHTML 化するとき、エディタでコピペするのは面倒だ。かといってデータベースを使うほどでもない時に、Excel を使う。

HTML構造

手順:

1)Excel で、品名、価格、コメントのリストを作成

表

2)Excel で、タグのセルではさまれた列に、それぞれのデータを貼り付け

HTML表 HTMLに表を貼り付け

3)タグを含んだセルを丸ごとコピーして、エディタで開いたHTML に貼り付け
例)

4)コードを整形

DreamWeaver CC
編集>コード>ソースフォーマットの適応

Eclipse
ソース>フォーマット
もしくは[Ctrl+Shift+F]ショートカット

小ネタ

ホームページから直接データを拾ってくる場合、表ならFirefox 限定で表選択(Ctrl + マウスドラッグ)ができる。

または、文章ダブルクリックで単語選択
トリプルクリックで段落選択できるので、これを利用する。

Windows 10 のエクスプローラーで、画像表示をサムネイルと詳細にすぐに切り替えたい

画像素材を探したり、レタッチした画像をエクスプローラーで確認している時、大アイコンと詳細を切り替えたい時がある。これまでは右クリックメニューの「表示」メニューを使って切り替えていたが、この切り替えボタンとショートカットがあることを知った。

何ができるか

エクスプローラーの「大アイコン/詳細」切り替えを、3動作から1動作に削減できる

方法

Windows 10で右下のボタンを押す

大アイコン表示
エクスプローラー、大アイコン表示

詳細表示
エクスプローラー、詳細表示

ショートカット

[Ctrl + Shift + 2] 大アイコン表示
[Ctrl + Shift + 6] 詳細

フォームでjQuery を使って、年月日それぞれのプルダウンメニューを、1つの項目にまとめたい

スマートフォン向けに年月日を選択できるWeb フォームで、それぞれ個別にプルダウン選択できるようにしたい。でも、送信する項目はひとまとめにしたい。

フォーム例
年月日のフォーム

対応

  • 年月日をそれぞれ3つのプルダウンメニューを作る
  • 年月日をまとめるフォーム”mydate” を hidden で追記
  • ID を割り振って、onChange でonChangeDate() を実行
    • 年月日それぞれの選択された値を取得して、”mydate”のvalue に設定

ソース

フォルダを任意のタイミングでバックアップするバッチファイル

後輩が、ウェブサイトコーディング中に、トラブルがあってバックアップしたファイルで巻き戻したとき、別のコードが消えているという2次被害を何度か起こしていた。気づいたことを本人に聞いたところ、「想定したよりバックアップの機会が少なかったから、起きた気がする。」とあった。そのため、バックアップ自体を簡単にしてみることにした。圧縮には7zip を使うので、事前にインストールすること。

参照

cmdのbatを使ってフォルダをCOPYして7zipで圧縮し最後に削除する方法 これくらいブログ
http://korekurai.com/itrelated/cmd-bat-7zip-folder.html

注意

手元の環境で実装するなら、まず空のフォルダで試すこと。安全に失敗するのが推奨される。

構造

バックアップ元

バックアップ先

backup_myfolder.bat

内訳

  1. DATENAME に年月日と時間の値を設定
  2. SOURCEPATH にバックアップ元のパスを設定
  3. TARGETZIP で圧縮ファイル名に年月日と時間を加える
  4. TARGETPATH にバックアップ先のパスを設定
  5. TARGETDIR にバックアップするフォルダ名を設定
  6. XCOPY でフォルダをコピー
  7. 7ZIP でコピーしたフォルダを圧縮
  8. rmdir で圧縮元フォルダを削除
  9. 最後に、バックアップの動作が行われたかを3秒だけ表示する

まとめ

動作テストして、問題がなければ対象フォルダの中身を入れよう。
作成したバッチファイルをランチャーに入れれば、任意のタイミングでバックアップできる。Windows のタスクに設定すれば、起動時や休憩時間にバックアップを自動でバックアップできるようになる。
コーディングが終われば、バッチファイルを解除しよう。

バックアップの定期復元テストは有用か?

わたしの経験では、バックアップの定期復元テストは有用だった。本記事で経験した内容を紹介する。

背景

とあるウェブサービスで、データベースを吹っ飛ばし、6重のバックアップが全滅していた話を聞いてぞっとしたから。

問題とその対策

ファイルサーバーへのバックアップが、一部ダウンロードされていなかった
バッチファイルの待機時間が長くて、別のタスクで実施された再起動で中断していた。待機時間を短く変更
ファイルサーバーで、古いファイルが自動削除されていなかった
バッチファイルを修正
設定に追加したサイトのバックアップが、ファイルサーバーにダウンロードされていなかった
サーバー側のバックアップファイル作成時間がバッチファイル実行時間より遅かった。順序を一致させた
ローカルでバッチ処理するパソコン乗り換えで、一部処理されないサイトが発生
ダウンロード管理表を使って、タスクを正しい時間に実行されるよう修正
復元作業手順書に書かれていない処理が分からず復元失敗
手順書を現状に即した内容で修正
復元先を間違えて、復元失敗
手順の中で、復元先を間違わないよう、日本語でディレクトリが分かるようにツールを変更

波及効果

  • 管理者がだれでも短時間で復元できるようになった
  • 手順書の強化に寄与できた

小規模サイト、サーバー自動バックアップ

2サイト以上の小規模なサイト運用をしている管理者にとって、バックアップは重要だが手間のかかる作業だ。ここを自動化した。詳細は別途、記事にする。

前提
Cron が使えるレンタルサーバー
本記事では、さくらインターネットのレンタルサーバーを例にする

概要

サーバー自動バックアップ

DBバックアップ:さくらのレンタルサーバーでシェルを使う、実行はCron を1時間ごとに実行
ファイルのダウンロード:Windows のバッチ処理でFTP 接続を使ってダウンロード、バッチはタスクスケジューラーを使って毎週実行
バックアップは1サイトのディレクトリとDBを圧縮している
サーバー丸ごとバックアップしないのは、負荷分散と、復元が1サイトごとになると想定しているため

必要な手動作業

  • バックアップ動作を監視する
  • 復元テストを定期的に実行する(1回/月、月初に)
  • 社内Wiki などに、復元作業手順書、復元テスト履歴を記載する
  • 自動化に必要なシェル、バッチファイル、スケジュール計画表を管理

動作

Cron でシェルスクリプトを実行。コンテンツとDBをサーバー内に圧縮保存(毎日0時~、1時間おきに1サイトをバックアップ)
タスクスケジューラーで毎週土曜日12:00~、1時間おきにバッチファイルを実行する
バッチ処理で作業場内のファイルサーバーにデータをダウンロード

管理用ツール

Podesora

Podesora  はターミナル。
さくらのレンタルサーバーでシェルスクリプトを手動で動かす
シェルスクリプトの文字エンコーディング:SJIS(管理者用メールで文字化けしないため)
SSH接続例)

例) /home/mysite/backup/backup_website1.sh と入力、バックアップのシェルスクリプトを実行

7-Zip File Manager 圧縮、解凍ソフト

7-zip は、.sql.bz .tar.gz2 を解凍する

データベースを解凍するときは、文字エンコーディングを”UTF-8″にする。(SJIS だと文字化けする)