• 締切済み

webアプリケーションのテストについて

質問失礼します。 Webアプリケーション初心者です。 作成したアプリケーションに対して単体テストを実施したいのですが、 アプリケーションにJQueryなどを用いて実装を行っており、 アプリケーションをローカルサーバで立ち上げてブラウザにロードされるまで、 若干のタイムラグが発生してしまいます。 その為、テストを行う際にはテスト対象のオブジェクトが空の状態で、 アサーションが掛けられない状態になっています(イベントデータ等を与えて それに応じた値を返す様なアプリケーションです)。 遅延に対してどの様な対処を講じるべきでしょうか?? 回答お願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

よくわかってませんが、回答がないようなので… >テストを行う際にはテスト対象のオブジェクトが空の状態で テストをどのような形でなさっているのか不明ですが、ブラウザの準備ができるまで待つようにすれば良いのではないでしょうか。 テスト側でイベントを発生してから応答までに時間がかかるということでしょうか? >対象のオブジェクトが空の状態で テスト側からブラウザのオブジェクトにアクセス可能なようなので、適当なタイムアウトの時間を設定しておいて、その間はオブジェクトに値が入るまでは待つようにすれば良いのでは? もしも、テスト側もjavascriptで行なおうとなさっているのなら、単に、処理の順序を制御してあげるだけで済みそうに思います。

関連するQ&A

  • jQueryの多重読込

    2つのHTMLがあり、両方ともjQueryプラグインを使っています。 今回、a.html側に、jQuery loadで、b.htmlを読込みました。 ■a.html jQuery 本体 jQueryUI jQueryForm jQuery.HashChanged など基本js(多数) ■b.html jQuery.Gallerific jQuery.Fancybox jQuery.fixPing などメディア系統js(多数) ■困っていること 両方とも、$(function(){ ... }) 構文を使って、DOMの展開完了を待っているのですが、「読込まれる側=b,html」の、$(function(){ ... }) がうまく働いていないようなのです。 b.html 単体では何の問題もないのですが、a.htmlにloadされると、遅延読み込みがききません。 元である a.html で全部のjQuery プラグインを読むのは重すぎるため、各々で必要なプラグインを都度、読むようにしたいのですが、その場合、読み込まれる側の実行遅延(DOM展待ち)はどのようにしたらいいでしょうか?

  • サーバー負荷テストはどのようにしていますか?

    サーバー負荷テストはどのようにしていますか? 始めまして。私は現在、WEBでの開発をしております。開発内容はモバゲー向けのソーシャルアプリとして提供する某会社のキャラクターが日本全国を自由に旅行できるGPS連動ゲームです。 現在テスト環境に実装はできていて、ニフティクラウドに負荷テスト用のサーバ(ロードバランサ(AP:mod_dosdetector,ipvsadm,keepalived,httpd)×1+APサーバ×2(Apache:httpd)+ロードバランサ(DB:ipvsadm,keepalived)×1+DBサーバ(マスタ:mysql)×1+DBサーバ(スレーブ:mysql)×2の7台構成です。 更新処理ではDB(マスタ)、参照処理はAPサーバからロードバランサ(DB)を介して、DB(ステーブ)を見ています。 この環境でサーバーの負荷テストをしたいと思っているのですが、まったくノウハウがありません。 サーバーの事についてあまり知識がなく、これからどのようにしたらできるのかまったくわからない状態です。 説明不足で申し訳ないですが、サーバー負荷テストの方法について、ご教授頂けないでしょうか? 何卒、宜しくお願い致します。

  • お勧めの本を教えてください

    オブジェクト指向開発の開発方法論を学びたいと思っています。 具体的な開発テーマを題材に、ユースケース・概念モデル分析~実装・単体テスト辺りまでについて、分析・設計・実装の手法・プロセス・成果物を学びたいのですが、適切な書籍はありますでしょうか。 各フェーズ細切れに本やサイトで勉強しているのですが、体系的に学べるものが少ないような気がします。 お勧めの本がありましたら、どなたか教えて頂けますでしょうか。

    • ベストアンサー
    • Java
  • privateのメンバ変数を直接取得するユーティリティ。

    privateのメンバ変数を直接取得するユーティリティ。 以前、あるプロジェクトでクラスのprivateメンバ変数をgetterメソッドがないのに直接取得できるクラスを使っているのを見ました。 オブジェクトとメンバ変数とかを引数に渡すと、Object型で返却されるようなテスト用のユーティリティクラスみたいでした。 クラスやパッケージなどを確認しなかったので、もしかしたらそのプロジェクトで独自に作ったのかもしれません。 ただオープンソースとかで存在するのであればテストに便利なので利用したいと考えています。 できればsetterメソッドがないprivateメンバ変数に設定できるクラスがあるとよいのですが・・・。 ご存知でしたら是非おしえてください。 希望している経緯はWebアプリケーションのクラスを作成すると、コンテナのオブジェクトがないと動かない場合も多く、単体試験がやりにくいのです。 easymockなど色々ありますが、生成したオブジェクトを対象クラスに渡してあげる必要があるものが多く(staticメソッドは対象外とか)、テストのためにsetterメソッドを実装する必要があります。 個人的には単体試験をやりやすくするために、本番では使用しないメソッドになるけれど、上記のようなsetterメソッドを作成するのはよいと考えています。 依存性を少なくさせて(意味が違うかもしれませんが)、試験がしやすくなれば保守性もあがるし、バグの発生率も少なくなると思っています。 ただ人によっては本番で動かないメソッドがあるのはおかしいという人もいます(実際に言われました)。 確かにそういう考えもあるかと思いますし、以前は私もそう思っていました。 試験のためのメソッドをクラスに作成する考えについても(主にテスト用なのでprotectedで作成しています)、やめた方がいいなどのアドバイスを頂けると嬉しいです。

    • ベストアンサー
    • Java
  • ローカル環境でのアップロードテスト

    お世話になります。 is_uploaded_fileをローカル上でテスト行いたいのですがうまくいきません。(ファイルが空の状態です) 外部サーバでは正常にアップロードできます。 サーバまたはPHP側の設定でしょうか? マニュアル読むと、「クライアントマシン上での名前$_FILES['userfile']['name'] では動作しません。」とありますが この辺りが引っ掛かってるような・・・?? テスト用コード if ( ! is_uploaded_file($_FILES['upfile']['tmp_name'])) { $img_name = 'NO_FILE'; echo $img_name; exit(); } $_FILES['upfile']['error'])も試したのですがエラーコードも出力されません。 ローカル:WindowsXP、Apache 2.2.6、PHP 5.25 外部サーバ:Linux系、Apache 2.0、PHP 4.3.9

    • ベストアンサー
    • PHP
  • access アプリケーションの最大化をしたい

    Ofiice2007を使っています。 エクセルなら Sub test() Application.WindowState = xlMaximized End Sub で最大化できますが、アクセスで同じコードを実行するとエラーになります。 Application.WindowState = acMaximized にしてもダメでした。 オブジェクトブラウザで検索したところ WindowStateもacMaximizedもアクセスにはないようです。 ヘルプでWindowStateを検索したところ、 WindowState プロパティと言うのを見つけました。 内容は、 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ウィンドウの表示状態を指定する数値を設定します。値の取得も可能です。 設定値 WindowState プロパティの設定値は、次のとおりです。 定数           値                  内容 vbext_ws_Normal    0   (既定値)      ノーマル vbext_ws_Min      1     最小化       (タスクバーに縮小表示) vbext_ws_Max      2    最大化       (画面全体に拡大表示) ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ とのことですが、どうやって使えば良いでしょう? Sub test() Application.WindowState = vbext_ws_Max End Sub だとダメでした。 ご教授よろしくお願いします。

  • jqueryのloadを使って検索結果を表示させたいと思っているのです

    jqueryのloadを使って検索結果を表示させたいと思っているのですが $('#search').load('/search.php?keyword=歯', null, function(){ 上のようにloadで検索するphpを呼び出して表示させているのですが keywordの値に「歯」などの特定の漢字の場合、loadできないのですが どのような原因が考えられますでしょうか。 文字コードはutf-8でurlencodeした状態で渡しても上のように直接渡してもloadされない状態です。 search.phpは単体でちゃんと動作する事を確認しております。 http://~~/search.php?keyword=歯 http://~~/search.php?keyword=%E6%AD%AF でアクセスするとちゃんと正常に結果が表示されます。 これをajaxのloadで呼び出すとphp自体呼び出すこともできていない状態になってしまうようです。 (テストで呼び出す側のphpにprint文だけを書いたのですが表示されなかったので 呼び出しすら出来ていない状態になっているようです) keywordの値によってはちゃんと結果がloadされるのですが、 「歯」「会社」など、キーワードによってはなぜかloadされなくなってしまうようです。 エンコードしてもダメ(受け取り側でもデコード)で原因がどうしてもわからないのですが、 何か考えられる事がございましたらご教授いただけますと幸いですm(__)m

    • ベストアンサー
    • AJAX
  • メールサーバの駆動テストの準備において

    社内システム管理者見習いです。 このたびメールサーバ移行に基づき、サーバテストを実施しています。 メールサーバは当然WAN側にあるので、その状態を擬似的に作成し、テストを行いたいと考えています。(いんちきインターネットをローカルで組みたい) サーバーマシンとクライアントマシンとルーターを1台づつ用意しています。 クライアントマシンにはローカルIPを、 サーバマシンにはグローバルIP(正式にプロバイダから受け取ったものですが、当然インターネットにはつながっていません)を、 ルーターにはLAN側にクライアントマシンと同じグループのIPを、 WAN側にはグローバルIPと同じグループのIPを与えました。 DNSやデフォルトゲートウェイはそろえてあります。 で、クライアント側からサーバ側に立てたIISのWebページへアクセスしたんですが、反応がありません。 上司がDNSの設定を修正して、回線状態が接続にはなったのですが、やっぱり見ることが出来ません。 何かヒントをご存知の方、いらっしゃいませんか?

  • ドメイン内で利用者変更すると特定のアプリケーションが使えない。

    Win NT ドメイン内にWin2000やXPが混在します。 利用者の権限はDomainUsersのみです。 通常はドメインでログオンします。 コンピュータの利用者が変更になり、特定のアプリケーション(VB系)が使えなくなりました。 (アクセスエラーの表示が出ます) Programファイル内該当EXEへアクセス拒否されているようです。 対処策として 1・管理者権限でログオンし、テスト⇒OK 2・以前のユーザーでログオンし、テスト⇒OK 3・コンパネ→ユーザーアカウント(ローカルPowerUsers)の追加し、テスト⇒NG 4・Programファイル内フォルダのアクセス許可(フルコントロール)を与えテスト⇒NG 5.ソフトウェアの再インストール後テスト⇒NG となっている状態です。 今までXPでは3の対策で上手に行っていたので これ以上何か方法があれば、ご教授願います。 よろしくお願い致します。

  • WEBサーバ側でロードされたクラスの存続期間について確認させてください

    (1)サーバ側のローカルファイルにある設定ファイル情報を staticなフィールドのHashTableに保有するためのfinalなクラスがあります。WEB-INFのclassesの下にあります。 (2)、(1)に情報を格納するHttpServletを作成しました。 (3)クライアントアプリケーション(GUIのjavaアプリケーション)が起動する時に、java.net.HttpURLConnection を使用して、(2)のサーブレットを起動し、サーバ側の (1)のクラス内に設定情報が保有されます。 (4)クライアントアプリケーションは必要に応じて HttpURLConnectionやブラウザーランチャーという ブラウザ起動用のクラスを使うなどして、 Webサーバにアクセスしますが、 その際、サーバ側では(1)のクラスに格納されている 情報を参照して処理をすすめることが多々あります。 上記を踏まえた上で質問したいのですが、 (1)に格納された情報がTom-catが再起動するまで、 永続的に存続してくれないと、仕様上困るんです。 ローカルのjavaアプリケーションでは、 クラスが一度ロードされると、 そのクラスのstatic領域はアプリケーション終了時 まで、生きています。それと同じ感覚でいるのですが。 tom-cat側でロードされたクラスのstatic領域の 情報は永続的に存在しつづけるのか 教えてほしいです。 また、これはテストではあまり確認しづらいです。 うまく、いってるように見えても、5、6時間 放置しておくと、情報が消えてるかもしれないです そんなの確認できないです。 tom-catの挙動はあまりよくしらないです。 たとえば、なにかのサービスのタイミングとかで、 情報の初期化みたいなことが行われて、(1)の 情報が消えたりしないでしょうか? そこらへん詳しい方にご確認したいのが、 今回の質問の趣旨です。 長々とすいません。 以上

    • ベストアンサー
    • Java

専門家に質問してみよう