Skip to content

Instantly share code, notes, and snippets.

@yujihamaguchi
Last active August 29, 2015 14:14
Show Gist options
  • Save yujihamaguchi/98f6e90e7f8b22438859 to your computer and use it in GitHub Desktop.
Save yujihamaguchi/98f6e90e7f8b22438859 to your computer and use it in GitHub Desktop.
[Tableau Server] レポート同時アクセスをシミュレート(Windows)
1. 以下のバッチファイルをexec.batという名前で保存する。
@echo off

SET PARALLEL_DEGREE=%1
SET TARGET_RB_SCRIPT_PATH=%2
SET ACCESS_URL=%3
SET USER_ID=%4
SET PASSWORD=%5

for /L %%i in (1,1,%PARALLEL_DEGREE%) do (
  START /b "" "ruby" %TARGET_RB_SCRIPT_PATH% %ACCESS_URL% %USER_ID% %PASSWORD%
)
2. 以下のrubyスクリプトをlogin.rbという名前で1と同じフォルダに保存する。
# -*- coding: utf-8 -*-

require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

$url = ARGV[0]
$usr = ARGV[1]
$pwd = ARGV[2]

Capybara.configure do |config|
  config.run_server = false
  config.current_driver = :poltergeist
  config.javascript_driver = :poltergeist
	config.app_host = $url
  config.default_wait_time = 5
end

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {:timeout=>120, js_errors: false})
end

module Crawler
  class Website
    include Capybara::DSL
    def login
      visit('')
      fill_in "username", :with => $usr
      fill_in "password", :with => $pwd
      click_button "submit"
    end
  end
end

crawler = Crawler::Website.new
crawler.login
3. コマンドプロンプトで上記フォルダに移動し、以下を実行。
  exec {並列度} ".\login.rb" "{レポートのURL}" "{Tableau Server ユーザID}" "{パスワード}"

実行例)

  > exec 30 ".\login.rb" "http://tableauserver.hoge.fuga:7001/views/Finance/Taleof100Start-ups?:refresh" "tableau" "hogehoge"
(補足) パフォーマンス情報は以下にて取得できる。

[Tableau Server] レポートの表示時間を取得する

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment