wdbomber 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68b1d92a4aed3a99a11ae2125e05fdca360859d888b80476f40da5518bf03645
4
- data.tar.gz: 4f44dac0755946ca09488da51013aa2454bc06c0634528983d7bd713b4279b43
3
+ metadata.gz: 76cc800c1313f1c2f133cb06eb685eb972db6e2679f08aad0330caf2518e186b
4
+ data.tar.gz: 3219434faec36dde950e804628f04fa5bfa6667ac7223ac31d405c2b6cd215a1
5
5
  SHA512:
6
- metadata.gz: bce6b82a94a695227d6743b5f932b430c3e2833213b5eb5d3ee42b36d59bf4700df0910018bb4b2b660fdb6aa36e110f7b1dc0ca9f2763dc9f895253946f8d06
7
- data.tar.gz: b29135ea9b571d9bf2e3df0aa2f5c58a891d82ce9be9f6802de60b9901c803333aefff1125813a9b87a4206917de7e78f97e50a0799efa4eebac61aaeea4d6b9
6
+ metadata.gz: 188de4d99dc7bf63ddbd3eb03494c7ee5afe3ff6e353870de80a96ae32f6b6aba7690969c88c56dcecb2f17b1c31a0a30cb651f757bf2c9c73eca07d8bfc12b5
7
+ data.tar.gz: b37dda3ca362dd44a3269636f94b9f23704f576872445c7a4f4add87dc2d54c0aa90d65688b2e087f2e4e535e3e725d515c667228bf572c338a684de97e9f132
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.6.0
data/Gemfile.lock CHANGED
@@ -1,26 +1,33 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wdbomber (0.1.3)
5
- superbot-selenium-webdriver
4
+ wdbomber (0.1.4)
5
+ async-webdriver (>= 0.1.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- archive-zip (0.11.0)
11
- io-like (~> 0.3.0)
10
+ async (1.13.1)
11
+ nio4r (~> 2.3)
12
+ timers (~> 4.1)
13
+ async-http (0.37.7)
14
+ async (~> 1.6)
15
+ async-io (~> 1.16)
16
+ http-protocol (~> 0.10)
17
+ async-io (1.17.2)
18
+ async (~> 1.3)
19
+ async-webdriver (0.1.1)
20
+ async-http
21
+ selenium-webdriver
12
22
  childprocess (0.9.0)
13
23
  ffi (~> 1.0, >= 1.0.11)
14
- chromedriver-helper (2.1.0)
15
- archive-zip (~> 0.10)
16
- nokogiri (~> 1.8)
17
24
  diff-lcs (1.3)
18
- ffi (1.9.25)
19
- io-like (0.3.0)
25
+ ffi (1.10.0)
26
+ http-hpack (0.1.1)
27
+ http-protocol (0.10.1)
28
+ http-hpack (~> 0.1.0)
20
29
  kommando (0.1.2)
21
- mini_portile2 (2.3.0)
22
- nokogiri (1.8.5)
23
- mini_portile2 (~> 2.3.0)
30
+ nio4r (2.3.1)
24
31
  rake (10.5.0)
25
32
  rspec (3.8.0)
26
33
  rspec-core (~> 3.8.0)
@@ -39,9 +46,7 @@ GEM
39
46
  selenium-webdriver (3.141.0)
40
47
  childprocess (~> 0.5)
41
48
  rubyzip (~> 1.2, >= 1.2.2)
42
- superbot-selenium-webdriver (1.0.0)
43
- chromedriver-helper (= 2.1.0)
44
- selenium-webdriver (= 3.141.0)
49
+ timers (4.2.0)
45
50
 
46
51
  PLATFORMS
47
52
  ruby
@@ -54,4 +59,4 @@ DEPENDENCIES
54
59
  wdbomber!
55
60
 
56
61
  BUNDLED WITH
57
- 1.17.1
62
+ 1.17.2
data/lib/wdbomber.rb CHANGED
@@ -1,5 +1,6 @@
1
+ require "async"
2
+ require "async/webdriver"
1
3
  require "wdbomber/version"
2
- require "selenium-webdriver"
3
4
 
4
5
  Signal.trap("INT") {
5
6
  if $SHUTDOWN_REQUESTED
@@ -25,51 +26,50 @@ module Wdbomber
25
26
  desired_capabilities['superOptions']['region'] = ENV["SUPERBOT_REGION"]
26
27
  end
27
28
 
28
- threads = []
29
- concurrency.times do |t|
30
- bomber = t+1
31
- sleep t*concurrency_delay #for specs
29
+ main_task = Async.run do |main_task|
30
+ concurrency.times do |t|
31
+ bomber = t+1
32
+ main_task.sleep t*concurrency_delay #for specs
32
33
 
33
- threads << Thread.new do
34
- if rampup
35
- my_rampup = rand(rampup).floor
36
- puts "#{bomber}: starting after #{my_rampup} rampup"
37
- sleep my_rampup
38
- puts "#{bomber}: started"
39
- end
40
- iterations.times do |i|
41
- if $SHUTDOWN_REQUESTED
42
- puts "#{bomber}: SHUTDOWN"
43
- break
34
+ main_task.async do |sub_task|
35
+ if rampup
36
+ my_rampup = rand(rampup).floor
37
+ puts "#{bomber}: starting after #{my_rampup} rampup"
38
+ sub_task.sleep my_rampup
39
+ puts "#{bomber}: started"
44
40
  end
45
41
 
46
- iteration = i+1
42
+ iterations.times do |i|
43
+ if $SHUTDOWN_REQUESTED
44
+ puts "#{bomber}: SHUTDOWN"
45
+ break
46
+ end
47
47
 
48
- started_at = Time.now
49
- client = Selenium::WebDriver::Remote::Http::Default.new
50
- client.read_timeout = 500
51
- driver = Selenium::WebDriver.for :remote, {
52
- url: endpoint,
53
- desired_capabilities: desired_capabilities,
54
- http_client: client,
55
- }
56
- actions.times do
57
- driver.navigate.to "about:blank"
58
- end
59
- took = Time.now - started_at
48
+ iteration = i+1
49
+ client = Async::Webdriver::Client.new endpoint: endpoint, desired_capabilities: desired_capabilities
50
+ started_at = Time.now
51
+ session = client.session.create!
52
+
53
+ actions.times do
54
+ session.navigate! "about:blank"
55
+ end
60
56
 
61
- puts "#{bomber}: took #{took.floor(1)}s (##{iteration}/#{iterations})"
62
- rescue
63
- puts "#{bomber}: EXCEPTION (#{iteration}/#{iterations})"
64
- p $!
65
- exit 1 unless ENV["WDBOMBER_KEEP_BOMBING"] == "true"
66
- ensure
67
- driver&.quit unless ENV["WDBOMBER_NO_QUIT"] == "true"
57
+ took = Time.now - started_at
58
+
59
+ puts "#{bomber}: took #{took.floor(1)}s (##{iteration}/#{iterations})"
60
+ rescue
61
+ puts "#{bomber}: EXCEPTION (#{iteration}/#{iterations})"
62
+ p $!
63
+ exit 1 unless ENV["WDBOMBER_KEEP_BOMBING"] == "true"
64
+ ensure
65
+ session.delete! unless ENV["WDBOMBER_NO_QUIT"] == "true"
66
+ end
68
67
  end
69
68
  end
70
69
  end
71
70
 
72
- threads.each(&:join)
71
+ main_task.wait
72
+
73
73
  STDERR.puts "OK"
74
74
  end
75
75
  end
@@ -1,3 +1,3 @@
1
1
  module Wdbomber
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/wdbomber.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_dependency "superbot-selenium-webdriver"
25
+ spec.add_dependency "async-webdriver", ">= 0.1.1"
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 1.16"
28
28
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wdbomber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matti Paksula
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-10 00:00:00.000000000 Z
11
+ date: 2019-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: superbot-selenium-webdriver
14
+ name: async-webdriver
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -123,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.7.7
126
+ rubygems_version: 3.0.1
128
127
  signing_key:
129
128
  specification_version: 4
130
129
  summary: bomb remote webdrivers