タグ

ブックマーク / 0-9.tumblr.com (6)

  • なぜSeleniumIDEを作ってるのか

    この記事はFrontrend Advent Calendar 2014 - Qiita 1日目です。 今年の中頃から一人でSeleniumIDEのChrome版のようなものを作ってる。 kyo-ago/chrome-autopilot-tool これはほぼ趣味の活動だけど、せっかくなので目的とかを書いておこうと思う。 SeleniumIDEとは何かその前にSeleniumの説明がいるか。。。 Seleniumとは何かSeleniumとはオープンソースのE2Eテストフレームワークで、主に実ブラウザを動かしてWebサイトの検証を行うために使われる。 歴史は結構古くて2004年くらいに現Sauce Labs CTOのJason Hugginsが開発したらしい。 WebDriverとは何かSeleniumを語る上で外せないのがWebDriverだ。 WebDriverとはブラウザをリモートから共通

    なぜSeleniumIDEを作ってるのか
  • イベントの間引き方

    JSでイベント関連の実装をする場合、頻繁に発生するイベントを間引きたくなる事がある。 例えばwindow.scrollやwindos.resize、mouseover何かは状況によってrequestAnimationFrameを超える頻度で発生するので、特に重い処理を実行する場合などはある程度イベントを無視しないとUIがロックされてしまう。 また、スマホや古いバージョンのブラウザなんかも処理速度の問題で間引く必要が出てくる。 こう言う処理は一般にthrottleとかdebounceと呼ばれてて(一応それぞれ違う動作を指す)検索すると公開された実装があるけど、とりあえずjQuery.throttleを使えばいい感じにしてくれる。 ただ、jQuery使ってないとか、ちょっと使いたいだけとかいうならこんな感じのコードでもいける。 window.onscroll = function hoge (

    イベントの間引き方
  • JsTestDriverとphantomjsとJenkinsを使ってのJSの継続的なテスト

    JsTestDriverとphantomjsとJenkinsを使ってのJSの継続的なテストを行う方法を解説します。 Javaのインストール JsTestDriver、Jenkins共に実行にJavaが必要になるため、Javaのインストールを行いましょう。 すでにインストール済みの場合は必要ありません。 JsTestDriverのインストール JsTestDriverのjarを落としましょうダウンロードしたJsTestDriverを–portオプションで起動しましょう( $ java -jar JsTestDriver[バージョン番号].jar –port 9876 )設定ファイルのサンプルをダウンロードしてJsTestDriver.jarと同じディレクトリにJsTestDriver.confの名前で保存しましょうこれでJsTestDriver serverが起動します。 今回はテスト対象と

    JsTestDriverとphantomjsとJenkinsを使ってのJSの継続的なテスト
  • JSのUnitTest関連技術

    ざっくり以下のようなツールが関連する CIサーバ系(Jenkins等) 何かのタイミングで自動的にテストを実行する場合に使用 「Swarm系」、「結合テスト系」を操作し、その結果を蓄積、報告する 結合テスト系 利点 IDEを使えばテストの定義が簡単実ブラウザでテストを実行するので検証が確実標準で画面遷移も含めた結合テストをサポートhtmlの切り出しが不要で実サービスを使ったテストが可能CIサーバとの連携が可能欠点 IDEを使ったテストは柔軟性に欠ける実ブラウザを使うので起動が遅い実ブラウザを使うので安定性に欠けるテストがUIhtml, css)に依存するHeadLess系が使えない(多分)ブラウザのみでテストが完結しないある程度UIが安定しているサービスに対してのサーバも含めたブラックボックステストに向く Swarm系 利点 実ブラウザでテストを実行するので検証が確実UnitTest系の

    JSのUnitTest関連技術
  • TDDの準備としてのサンプルコードテストのすすめ

    //主にJSのTDDを想定してますが、JSに限らないと思うのでTDDとしてます。 TDDでコード書くのは色々はかどっていいけど、TDDしたことない人がいきなりTDDから入ると挫折する可能性が高いのでおすすめできない。 TDDでコードを書くには「テストフレームワークに関する知識」、「テスト手法に関する知識」、「テスト対象に関する知識」が必要なので、以下の順番で進めていくといいと思う。 1. サンプルコードをテスト形式で書く 最初はライブラリやアプリ自体の主要な機能を説明したサンプルコードをテスト形式で書こう。 サンプルコードの目的は主要な機能の説明なので、テストは簡単なほどいい。 まずはテストフレームワークに慣れるのが目的なので、こったテストを書く必要はないし、よく分からなければ「実際こうは動かないけど」と断った上でテストっぽくコードを書いてもいい。 とにかくまずは普通にコードを書いて、その

    TDDの準備としてのサンプルコードテストのすすめ
  • Object.prototype.__defineSetter__を使ったAndroidでのJSON Hijackingに関して

    Object.prototype.__defineSetter__を使ったAndroidでのJSON Hijackingに関して こないだShibuya.XSSで徳丸さんが紹介されてたObject.prototype.__defineSetter__を使ったJSON Hijackingに関して「Fx3系とAndroid 2系で動作する」とのことだったので検証してみた。 前書き __defineSetter__とはブラウザベンダーが独自実装したProperty AccessorでECMAScriptには定義されていない(ECMAScriptでは別の方法が定義された) 具体的な使い方は以下のとおり。 hoge = {}; hoge.__defineSetter__(‘huga’, function(val) { this.huga_ = val; }); hoge.huga = 'foo’;

    Object.prototype.__defineSetter__を使ったAndroidでのJSON Hijackingに関して
  • 1