Enviar búsqueda
Cargar
プロキシーを使ってテストを楽にする
•
3 recomendaciones
•
1,781 vistas
Shunji Konishi
Seguir
11/20 社内勉強会資料
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 20
Descargar ahora
Descargar para leer sin conexión
Recomendados
Sql world を支える技術
Sql world を支える技術
Oda Shinsuke
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
Elastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみた
Yoichi Toyota
LibreOffice Base をSQLite のフロントエンドにしてみよう
LibreOffice Base をSQLite のフロントエンドにしてみよう
78tch
意識の低い自動化
意識の低い自動化
greenasparagus
Ext.direct
Ext.direct
Shuhei Aoyama
初心者向け SQLite の始め方
初心者向け SQLite の始め方
suno88
Centos7 systemd
Centos7 systemd
Tomonori Takada
Recomendados
Sql world を支える技術
Sql world を支える技術
Oda Shinsuke
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
Elastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみた
Yoichi Toyota
LibreOffice Base をSQLite のフロントエンドにしてみよう
LibreOffice Base をSQLite のフロントエンドにしてみよう
78tch
意識の低い自動化
意識の低い自動化
greenasparagus
Ext.direct
Ext.direct
Shuhei Aoyama
初心者向け SQLite の始め方
初心者向け SQLite の始め方
suno88
Centos7 systemd
Centos7 systemd
Tomonori Takada
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
elanlilac
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
fumoto kazuhiro
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
Next-L Enju 第1回開発ワークショップ資料
Next-L Enju 第1回開発ワークショップ資料
Kosuke Tanabe
What is doobie? - database access for scala -
What is doobie? - database access for scala -
chibochibo
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
Drupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高める
Koji Kawamura
RとSQLiteによるオミックス解析の促進
RとSQLiteによるオミックス解析の促進
弘毅 露崎
OSC2008 Tokyo/Spring REST勉強夜会
OSC2008 Tokyo/Spring REST勉強夜会
Siena. N
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
VPとSPIDERを使ったMySQL運用
VPとSPIDERを使ったMySQL運用
Ryuta Kamizono
System4 detail for_h
System4 detail for_h
Jun Chiba
図解 ngrx
図解 ngrx
Kou Matsumoto
MySQL のオンラインバックアップ & リカバリ
MySQL のオンラインバックアップ & リカバリ
k_teru
Gasライブデモ20210715
Gasライブデモ20210715
Hayato Ito
System4 comment h
System4 comment h
Jun Chiba
Handlersocket 20140218
Handlersocket 20140218
akirahiguchi
20180123 power shell
20180123 power shell
Trainocate Japan, Ltd.
Heroku meetup 13_shuttlebus-heroku
Heroku meetup 13_shuttlebus-heroku
masaoki_ohashi
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみた
masaoki_ohashi
Herokuのログ解析ツール
Herokuのログ解析ツール
Shunji Konishi
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
Shunji Konishi
Más contenido relacionado
La actualidad más candente
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
elanlilac
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
fumoto kazuhiro
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
Next-L Enju 第1回開発ワークショップ資料
Next-L Enju 第1回開発ワークショップ資料
Kosuke Tanabe
What is doobie? - database access for scala -
What is doobie? - database access for scala -
chibochibo
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
Drupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高める
Koji Kawamura
RとSQLiteによるオミックス解析の促進
RとSQLiteによるオミックス解析の促進
弘毅 露崎
OSC2008 Tokyo/Spring REST勉強夜会
OSC2008 Tokyo/Spring REST勉強夜会
Siena. N
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
VPとSPIDERを使ったMySQL運用
VPとSPIDERを使ったMySQL運用
Ryuta Kamizono
System4 detail for_h
System4 detail for_h
Jun Chiba
図解 ngrx
図解 ngrx
Kou Matsumoto
MySQL のオンラインバックアップ & リカバリ
MySQL のオンラインバックアップ & リカバリ
k_teru
Gasライブデモ20210715
Gasライブデモ20210715
Hayato Ito
System4 comment h
System4 comment h
Jun Chiba
Handlersocket 20140218
Handlersocket 20140218
akirahiguchi
20180123 power shell
20180123 power shell
Trainocate Japan, Ltd.
La actualidad más candente
(18)
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
究極のバッチフレームワーク(予定)
究極のバッチフレームワーク(予定)
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Next-L Enju 第1回開発ワークショップ資料
Next-L Enju 第1回開発ワークショップ資料
What is doobie? - database access for scala -
What is doobie? - database access for scala -
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Drupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高める
RとSQLiteによるオミックス解析の促進
RとSQLiteによるオミックス解析の促進
OSC2008 Tokyo/Spring REST勉強夜会
OSC2008 Tokyo/Spring REST勉強夜会
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
VPとSPIDERを使ったMySQL運用
VPとSPIDERを使ったMySQL運用
System4 detail for_h
System4 detail for_h
図解 ngrx
図解 ngrx
MySQL のオンラインバックアップ & リカバリ
MySQL のオンラインバックアップ & リカバリ
Gasライブデモ20210715
Gasライブデモ20210715
System4 comment h
System4 comment h
Handlersocket 20140218
Handlersocket 20140218
20180123 power shell
20180123 power shell
Destacado
Heroku meetup 13_shuttlebus-heroku
Heroku meetup 13_shuttlebus-heroku
masaoki_ohashi
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみた
masaoki_ohashi
Herokuのログ解析ツール
Herokuのログ解析ツール
Shunji Konishi
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
Shunji Konishi
MochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテスト
Shunji Konishi
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介
masaoki_ohashi
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
Ayumu Aizawa
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
Shunji Konishi
Destacado
(9)
Heroku meetup 13_shuttlebus-heroku
Heroku meetup 13_shuttlebus-heroku
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみた
Herokuのログ解析ツール
Herokuのログ解析ツール
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
MochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテスト
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
Similar a プロキシーを使ってテストを楽にする
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
azuma satoshi
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
Java EE8 Report
Java EE8 Report
Norito Agetsuma
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
Keisuke Fujikawa
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
[Japan Tech summit 2017] DEP 006
[Japan Tech summit 2017] DEP 006
Microsoft Tech Summit 2017
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょ
Kohki Nakashima
Similar a プロキシーを使ってテストを楽にする
(20)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
Djangoフレームワークの紹介
Djangoフレームワークの紹介
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Java EE8 Report
Java EE8 Report
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
[Japan Tech summit 2017] DEP 006
[Japan Tech summit 2017] DEP 006
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
ScalaMatsuri 2016
ScalaMatsuri 2016
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょ
Más de Shunji Konishi
SendGridサンプルの紹介
SendGridサンプルの紹介
Shunji Konishi
セキュリティの考え方
セキュリティの考え方
Shunji Konishi
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Shunji Konishi
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
Shunji Konishi
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Shunji Konishi
Heroku tips1
Heroku tips1
Shunji Konishi
Playframework1でSeleniumテスト
Playframework1でSeleniumテスト
Shunji Konishi
Heroku Dyno再起動時の振る舞い
Heroku Dyno再起動時の振る舞い
Shunji Konishi
Dyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
Shunji Konishi
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
Shunji Konishi
Play1 to Play2
Play1 to Play2
Shunji Konishi
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
Excel2 canvas
Excel2 canvas
Shunji Konishi
特盛!Heroku
特盛!Heroku
Shunji Konishi
文字コードのお話
文字コードのお話
Shunji Konishi
High traffic questionnaire site
High traffic questionnaire site
Shunji Konishi
Más de Shunji Konishi
(16)
SendGridサンプルの紹介
SendGridサンプルの紹介
セキュリティの考え方
セキュリティの考え方
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Heroku tips1
Heroku tips1
Playframework1でSeleniumテスト
Playframework1でSeleniumテスト
Heroku Dyno再起動時の振る舞い
Heroku Dyno再起動時の振る舞い
Dyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
Play1 to Play2
Play1 to Play2
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Excel2 canvas
Excel2 canvas
特盛!Heroku
特盛!Heroku
文字コードのお話
文字コードのお話
High traffic questionnaire site
High traffic questionnaire site
Último
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Último
(10)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
プロキシーを使ってテストを楽にする
1.
株式会社フレクト 2014/11/20 小西俊司
2.
テストがなくて辛い しかし、仕様がころころ変わるSI案件ではテストをメン テナンスするコストが高すぎる
◦ていうか無理 ◦巷間語られるテストの理想はサービスではまだしもSIでは難 しい気がする ◦ていうか仕様変わりすぎ。。。(-- なんとかして楽してテストを作りたい
3.
PROTE https://github.com/shunjikonishi/prote プロキシーで、テストをなんとかする
4.
リバースプロキシの一種 経由する全リクエスト/レスポンスをファイルに保存 ◦HOST,
Referer等は対象サーバに書き変えている ◦扱いやすいようにheadersとbodyは別ファイルにしている WebSocketにも対応 同一ブラウザからのリクエストのライブモニタリングが 可能 リクエストを選択してテストをジェネる リクエスト/レスポンスをインターセプトして一部を置 き換えることも可能
5.
Proteの受けたリ クエスト/レスポン スを一部のヘッダ
を書き換えて転送 Request ◦Host ◦Origin ◦Referer Response ◦Location
6.
実装はPlay2 ◦activator.jarがプロジェクトルートにあるのでJDKがあればsbtや scalaのインストールは不要
環境変数TARGET_HOSTにテスト対象のホスト名を設定 TARGET_HOSTがhttpsを必要とする場合はhttps.port の指定が必要 ◦playが自動的に自己署名証明書を生成 gitclone https://github.com/shunjikonishi/prote.git cdprote set TARGET_HOST=xxxx.herokuapp.com activator –Dhttps.port=9443 run
7.
メッセージをローカルにファイル保存しているため 1Dynoでないとちゃんと動かない ◦当然キャプチャしたメッセージは1日(Dyno再起動)で消える
httpsはHerokuのルータがハンドルするので設定不 要 他者のセットアップしたサーバをうかつに実行しては いけない ◦Printlnを仕込むだけであっさりと全情報を盗める herokucreate –b https://github.com/heroku/heroku-buildpack-scala gitpush herokumaster herokuconfig:setTARGET_HOST=xxxx.herokuapp.com
8.
localhost:9000で起動している場合 http://localhost:9000/CONSOLE/mainにアクセ スしてライブモニタを起動
◦/CONSOLE/xxxxだけは対象サーバに転送されない ◦「CONSOLE」の部分は環境変数CONSOLE_CONTEXTで設 定可能 http://localhost:/9000/ など任意のパスにアクセ ス ◦対象サーバの画面が表示される ◦ライブモニタには実行されたリクエストの一覧が表示される ◦CORSで複雑なことをしていなければ問題なく動作するはず
9.
同一ブラウザからのリクエストをリアルタイムで参照
10.
各種フィルタ ◦イメージを隠す ◦Js/cssを隠す
◦パスの部分一致でフィルタリング JSONのprettyPrint UrlEncodedのデコード テストの生成 リクエスト/レスポンスを同時に表示するので見やすい WebSocketが見られるのは便利(ChromeのDevToolで は日本語が化ける) ネットワークの見られないIE8で特に重宝する
11.
実行するリクエストを選択してテストを生成 現在はJavaScript(Mocha)のテスト生成にのみ対応
12.
選択したリクエストを順次実行し、保存したレスポンス と比較する ◦ステータスコード
◦レスポンスがJsonの場合は保存したBodyと各項目を比較 日付やオートインクリメントの項目があると、あっさり 失敗する(-- ◦レコードの新規作成時のキーや作成日は毎回異なるのでそ のままでは使えない 現在WebSocketのテストには未対応 multipart/form-dataにも未対応 ◦必要に迫られたら作る
13.
テスト生成時にExternal Scriptを指定することで外 部スクリプトを差し込むことができる
varhttp = require("http"), https = require("https"), assert = require("chai").assert, external = require("./custom.js"), querystring = require("querystring");
14.
拡張ポイントは以下の3つ ◦buildTestData: テストデータをカスタマイズする
◦hookRequest: リクエスト(パラメータ)をカスタマイズする ◦validate: 独自のassertionを行う。Trueを返した場合はデ フォルトの検証はスキップされる module.exports= { buildTestData: function(request, data) { return data;}, hookRequest: function(prevResponse, request) { return request;}, validate: function(request, response) { return false;} }
15.
アイテムを新規作成後に削除 varextend =
require("extend"), IGNORE_VALUE = "__IGNORE__"; module.exports= { buildTestData: function(request, data) { //新規作成時はキーと日付項目を無視 if (request.path=== "/item/new") { data = extend(data, { "id" : IGNORE_VALUE "updatedatetime" : IGNORE_VALUE }); } return data; }, hookRequest: function(prevResponse, request) { //削除時はパスのキー部分を変更 if (request.path.indexOf("/item/delete/") === 0) { request.path= "/item/delete/" + prevResponse.body.newId; } return request; } }
16.
RSpecやJUnit用のテストを独自に作成することが可 能 ◦SourceGeneratorの実装クラスを作成し、
◦SourceGeneratorResistryに登録 ただし、Cookieのハンドリングはかなり面倒 ◦ほとんどの場合なんらかのワンタイムトークンがあるのでそ れを引き回す必要がある 参考 ◦MochaTest.scala.txt ◦MochaTestGenerator.scala ◦MessageWrapper.scala PullRequestください
17.
以下のフックが可能 ◦リクエストをサーバに転送せず独自のレスポンスを返す ◦リクエストをサーバに転送する前に改変
◦サーバから受けたレスポンスを改変してブラウザに返す Interceptorの使用例 ◦フロントエンド開発時にとあるレスポンスの一部だけ変更した ものが欲しいがそれ以外はオリジナルデータを使いたい ◦ログインでユーザ名、パスワードを入力するのが面倒なので 毎回同じテストユーザでログインしたい ◦開発環境のデータを使いつつCSSだけはローカルで編集した い(デザイナー向けに有用)
18.
Interceptorの実装クラスを作成し、 InterceptorResistryに登録 参考:
SampleInterceptor.scala packageinterceptors importmodels.RequestMessage importmodels.ResponseMessage traitInterceptor { //リクエストのフック //改変したリクエスト、または独自レスポンスを返す defhookRequest(request: RequestMessage): Either[RequestMessage, ResponseMessage] = Left(request) //レスポンスのフック //改変したレスポンスを返す defhookResponse(request: RequestMessage, response: ResponseMessage): ResponseMessage = response }
19.
FileInterceptorをInterceptorResitoryに登録 objectInterceptorRegistry{ …
private vallist: Seq[(Pattern, Interceptor)] = Seq( "/assets/css/style.css" -> new FileInterceptor("text/css", new File(…)), ".*" -> defaultInterceptor ).map{case (s, v) => (s.r.pattern, v)} … }
20.
テストの自動生成は思ったより難しい ◦Cookieが超絶面倒だった ◦レスポンスの検証方法は課題(JSON以外もどうにかしたいがノーア
イデア) ◦Seleniumとの連携でなんかできそうな気もするがイマイチ思いつ かない Interceptorはかなり使える ◦当初の予定にはなかったが、社内勉強会での意見を元に実装して みた ◦FLECTでは特にCSS差し替えが使えそう ◦ユースケースが見えてきたらコード編集なしでコンソールから設定 できるようにするかも カスタマイズ可能なProxyエンジンと考えれば他にも色々 な使い道があるかも 決して悪用してはならない ◦インターネット上でやったらフィッシングです。。。(-- まだまだ発展途上
Descargar ahora