私はレール3.1.1に取り組んでおり、認証にsocery 0.7.11を使用しています。パフォーマンステストを実装する必要があります。ここで、次のことをテストできます。
- サインオンとサインオフを同時に行う100人のユーザーをシミュレートします
- 同時に新しい興味を追加する100人のユーザーをシミュレートします。
私は次のリンクをたどりました:
http://rubylearning.com/blog/2011/08/14/performance-testing-rails-applications-how-to/
http://guides.rubyonrails.org/performance_testing.html
そして、次のことができる
- test_helper.rbでテストフォルダを作成しました
- test / performance/login_test.rbを作成しました
- 作成されたfixtures/users.yml
test_helper.rb
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
#
# Note: You'll currently still have to declare fixtures explicitly in integration tests
# -- they do not yet inherit this setting
fixtures :all
# Add more helper methods to be used by all tests here...
end
/performance/login_test.rb
require 'test_helper'
require 'rails/performance_test_help'
class LoginTest < ActionDispatch::PerformanceTest
fixtures :users
# Refer to the documentation for all available options
self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory],
:output => 'tmp/performance', :formats => [:flat] }
def test_login
post_via_redirect "http://bc.lvh.me/", :username => users(:youruser).username, :password => users(:youruser).password
#using lvh.me coz login page is on my subdomain
end
end
フィクスチャ/users.yml
one:
username: eagleschasar12
password: chaitanyA1#
two:
username: eaglesmarktell12
password: chaitanyA1#
rake test:profileを実行すると、次の結果が得られました
E
===============================================================================
Error: test_login(LoginTest)
ActiveRecord::StatementInvalid: SQLite3::SQLException: table users has no column named password: INSERT INTO "users" ("username", "password", "created_at", "updated_at", "id") VALUES ('eagleschasar12', 'chaitanyA1#', '2012-06-15 06:43:01', '2012-06-15 06:43:01', 980190962)
だから私の質問は
- 挿入クエリを起動するコマンドをテストする理由
- 機能をテストするために、フィクスチャファイルにユーザーの100レコードを書き込む必要がありますか?
- セッションのログイン/ログオフを確認する方法は?
- また、dbからインタレストタイプを選択する場合、ユーザーはシステムにログインする必要があります。パフォーマンステストでこのシナリオをテストするにはどうすればよいですか?
- このテストは、私のローカルサーバーであるwebrickで実行されますか?