wdbomber 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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