Skip to content

Instantly share code, notes, and snippets.

@twalpole
Last active August 25, 2020 19:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save twalpole/52e4f833572086bee9900e09889852be to your computer and use it in GitHub Desktop.
Save twalpole/52e4f833572086bee9900e09889852be to your computer and use it in GitHub Desktop.
concurrency_test.rb
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'selenium-webdriver'
gem 'webdrivers'
gem 'capybara'
gem 'byebug'
gem 'puma'
end
require 'webdrivers'
require "capybara/dsl"
KEYFILE = '<key location>'
CERTFILE = '<cert location>'
Capybara.server = :puma, {
Host: "ssl://#{Capybara.server_host}?key=#{KEYFILE}&cert=#{CERTFILE}",
Threads: '0:1',
queue_requests: false
}
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--window-size=1400,1400')
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
Capybara.register_driver :chrome2 do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--window-size=1920,1080')
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
Capybara.register_driver :chrome3 do |app|
options = Selenium::WebDriver::Chrome::Options.new
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
Capybara.register_driver :chrome4 do |app|
options = Selenium::WebDriver::Chrome::Options.new
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
sess1 = Capybara::Session.new(:chrome, app)
sess1.visit('/')
sess1.assert_selector('#i')
sess2 = Capybara::Session.new(:chrome2, app)
sess2.visit('/')
sess2.assert_selector('#i')
sess3 = Capybara::Session.new(:chrome3, app)
sess3.visit('/')
sess3.assert_selector('#i')
sess4 = Capybara::Session.new(:chrome4, app)
sess4.visit('/')
sess4.assert_selector('#i')
sleep 3
__END__
<!DOCTYPE html>
<html>
<head>
<title>Snippet</title>
</head>
<body>
<p>
My https page
</p>
<input id="i"/>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment