nethttp_ab 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG ADDED
@@ -0,0 +1,3 @@
1
+ v0.0.2 deleted trollop gem as a requirement, added nokogiri dependency to gemspec, added MIT license file, fixed small issue with benchmarked site's url, added wrong site address handling [06-04-2011]
2
+
3
+ v0.0.1. first release [05-04-2011]
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2011 by Dmitrii Samoilov
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/Manifest CHANGED
@@ -1,3 +1,6 @@
1
+ CHANGELOG
2
+ LICENSE
3
+ Manifest
1
4
  README
2
5
  Rakefile
3
6
  bin/nethttp_ab
@@ -5,8 +8,8 @@ lib/net.rb
5
8
  lib/requester.rb
6
9
  lib/requests_queue.rb
7
10
  lib/simple_requests_queue.rb
11
+ nethttp_ab.gemspec
8
12
  test/nethttp_ab_test.rb
9
13
  test/requests_queue_test.rb
10
14
  test/resources/index.html
11
15
  test/simple_requests_queue_test.rb
12
- Manifest
data/Rakefile CHANGED
@@ -2,8 +2,8 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('nethttp_ab', '0.0.1') do |p|
6
- p.description = "Simple tool to benchmark sites"
5
+ Echoe.new('nethttp_ab', '0.0.2') do |p|
6
+ p.description = "Simple tool to test and benchmark sites"
7
7
  p.url = "http://github.com/german/nethttp_ab"
8
8
  p.author = "Dmitrii Samoilov"
9
9
  p.email = "germaninthetown@gmail.com"
data/bin/nethttp_ab CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'rubygems'
3
- require 'trollop'
4
3
  require File.dirname(File.expand_path(__FILE__)) + '/../lib/requester.rb'
5
4
 
6
5
  # SIMPLE USAGE:
@@ -10,19 +9,39 @@ require File.dirname(File.expand_path(__FILE__)) + '/../lib/requester.rb'
10
9
  # OR simulate user and follow all local links on the page
11
10
  # nethttp_ab -f http://localhost:3000
12
11
 
13
- opts = Trollop::options do
14
- opt :concurrent_threads, "Number of concurrent threads", :default => 3, :short => 'c'
15
- opt :requests, "Total number of requests", :default => 10, :short => 'n'
16
- opt :follow_links, "Whether to follow links from received pages (emulating real user)", :default => false, :short => 'f'
12
+ opts = {}
13
+
14
+ if ARGV.include?('--follow_links') || ARGV.include?('-f')
15
+ opts[:follow_links] = true
16
+ else
17
+ opts[:follow_links] = false
18
+ end
19
+
20
+ if ARGV.include?('-c')
21
+ opts[:concurrent_threads] = ARGV[ARGV.index('-c') + 1].to_i
22
+ ARGV.delete('-c')
23
+ ARGV.delete(opts[:concurrent_threads])
24
+ else
25
+ opts[:concurrent_threads] = 3
26
+ end
27
+
28
+ if ARGV.include?('-n')
29
+ opts[:requests] = ARGV[ARGV.index('-n') + 1].to_i
30
+ ARGV.delete('-n')
31
+ ARGV.delete(opts[:requests])
32
+ else
33
+ opts[:requests] = 10
17
34
  end
18
35
 
19
36
  url_to_benchmark = "http://localhost:3000/"
37
+
20
38
  # search for the url to perform benchmarking on
21
- # we don't use trollop here since I don't like to specify --url=http://mysite.com to get the url
22
39
  ARGV.each do |arg|
23
- url_to_benchmark = arg if arg =~ /https?:\/\/|www\./
40
+ url_to_benchmark = arg if arg =~ /^(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.]*)*\/?$/
24
41
  end
25
42
 
43
+ url_to_benchmark = "http://" + url_to_benchmark if url_to_benchmark !~ /^https?:\/\//
44
+
26
45
  requester = NethttpAb::Requester.new
27
46
  requester.concurrent_users = opts[:concurrent_threads]
28
47
  requester.num_of_requests = opts[:requests]
data/lib/requester.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'benchmark'
2
2
  require 'thread'
3
- require 'nokogiri' # we could follow links on the pages if there's --follow-links=2 option
4
3
 
5
4
  require File.dirname(File.expand_path(__FILE__)) + '/requests_queue'
6
5
  require File.dirname(File.expand_path(__FILE__)) + '/simple_requests_queue'
@@ -33,6 +32,8 @@ module NethttpAb
33
32
 
34
33
  def follow_links=(flag)
35
34
  @follow_links = flag
35
+ # we could follow links on the pages if there's --follow-links=2 option
36
+ require 'nokogiri' if @follow_links
36
37
  end
37
38
 
38
39
  def url=(link)
@@ -72,6 +73,9 @@ module NethttpAb
72
73
  rescue Errno::ECONNREFUSED => e
73
74
  puts("Connection error, please check your internet connection or make sure the server is running (it's local)")
74
75
  exit
76
+ rescue SocketError => e
77
+ puts e.message
78
+ exit
75
79
  end
76
80
 
77
81
  req = Net::HTTP::Get.new(@url.path)
@@ -93,10 +97,13 @@ module NethttpAb
93
97
  begin
94
98
  http_opened_session = get_http_session(@url)
95
99
  rescue OpenSSL::SSL::SSLError => e
96
- puts("The url you provided is wrong, please check is it really ssl encrypted")
100
+ puts "The url you provided is wrong, please check is it really ssl encrypted"
97
101
  exit
98
102
  rescue Errno::ECONNREFUSED => e
99
- puts("Connection error, please check your internet connection or make sure the server is running (it's local)")
103
+ puts "Connection error, please check your internet connection or make sure the server is running (it's local)"
104
+ exit
105
+ rescue SocketError => e
106
+ puts e.message
100
107
  exit
101
108
  end
102
109
 
data/nethttp_ab.gemspec CHANGED
@@ -2,26 +2,24 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{nethttp_ab}
5
- s.version = "0.0.1"
5
+ s.version = "0.0.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Dmitrii Samoilov"]
9
- s.cert_chain = ["/home/german/.ssh/gem-public_cert.pem"]
10
- s.date = %q{2011-04-05}
9
+ s.date = %q{2011-04-06}
11
10
  s.default_executable = %q{nethttp_ab}
12
- s.description = %q{Simple tool to benchmark sites}
11
+ s.description = %q{Simple tool to test and benchmark sites}
13
12
  s.email = %q{germaninthetown@gmail.com}
14
13
  s.executables = ["nethttp_ab"]
15
- s.extra_rdoc_files = ["README", "bin/nethttp_ab", "lib/net.rb", "lib/requester.rb", "lib/requests_queue.rb", "lib/simple_requests_queue.rb"]
16
- s.files = ["README", "Rakefile", "bin/nethttp_ab", "lib/net.rb", "lib/requester.rb", "lib/requests_queue.rb", "lib/simple_requests_queue.rb", "test/nethttp_ab_test.rb", "test/requests_queue_test.rb", "test/resources/index.html", "test/simple_requests_queue_test.rb", "Manifest", "nethttp_ab.gemspec"]
14
+ s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "bin/nethttp_ab", "lib/net.rb", "lib/requester.rb", "lib/requests_queue.rb", "lib/simple_requests_queue.rb"]
15
+ s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "bin/nethttp_ab", "lib/net.rb", "lib/requester.rb", "lib/requests_queue.rb", "lib/simple_requests_queue.rb", "nethttp_ab.gemspec", "test/nethttp_ab_test.rb", "test/requests_queue_test.rb", "test/resources/index.html", "test/simple_requests_queue_test.rb"]
17
16
  s.homepage = %q{http://github.com/german/nethttp_ab}
18
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Nethttp_ab", "--main", "README"]
19
18
  s.require_paths = ["lib"]
20
19
  s.rubyforge_project = %q{nethttp_ab}
21
20
  s.rubygems_version = %q{1.6.2}
22
- s.signing_key = %q{/home/german/.ssh/gem-private_key.pem}
23
- s.summary = %q{Simple tool to benchmark sites}
24
- s.test_files = ["test/simple_requests_queue_test.rb", "test/requests_queue_test.rb", "test/nethttp_ab_test.rb"]
21
+ s.summary = %q{Simple tool to test and benchmark sites}
22
+ s.test_files = ["test/nethttp_ab_test.rb", "test/requests_queue_test.rb", "test/simple_requests_queue_test.rb"]
25
23
 
26
24
  if s.respond_to? :specification_version then
27
25
  s.specification_version = 3
metadata CHANGED
@@ -1,54 +1,35 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: nethttp_ab
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
4
5
  prerelease:
5
- version: 0.0.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Dmitrii Samoilov
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain:
12
- - |
13
- -----BEGIN CERTIFICATE-----
14
- MIIDQDCCAiigAwIBAgIBADANBgkqhkiG9w0BAQUFADBGMRgwFgYDVQQDDA9nZXJt
15
- YW5pbnRoZXRvd24xFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
16
- ARkWA2NvbTAeFw0xMTA0MDUwOTM4NTRaFw0xMjA0MDQwOTM4NTRaMEYxGDAWBgNV
17
- BAMMD2dlcm1hbmludGhldG93bjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
18
- CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
19
- wgFgELrtM2WGMHb0Tbd0mHzzd1O7begCVLUVqTfULTWxRyfa1xlPYGOkprxwfQE0
20
- e1TLzhgtzrwPtKm0+IWlz0yiDdcP+/vORNYGJn0hlVMIyoh/Gjvy9tg+lAZHHzyW
21
- P08b83YCvTAsfmYwj1gCVERJcTNYoqerpTX711+qYYAm4KMEXOlk3w6vOSXSgioH
22
- qT3hlHivuRnLO8ASv2dC0Xpej0wUqtFx+h6FkYzrs5PFp5r9Ccste/vTonP5sWX3
23
- FlXZaqawuFqlYbkVEjIZyE5smYeBR3NJsNjIpcdpInWaYul631yIEy5UiPucGlnQ
24
- LSqxi4knbIeA0S58KgRvtQIDAQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQR
25
- MgXYASGhr6Z27DY6DTOu66QfKjALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQAD
26
- ggEBADkXRjtNXe+PCTkBpODetl9Mgrw3vxmQbpaQFeV0IPMiav+6m48/ai0p9zxF
27
- JpjN7GPHzy8LJQGmwOOrpDwU7JsX6hlXtXToKM/RcStUqm1v+8GLE/K777Foq4T+
28
- 6QmqCPwYdpN1hijiEM4miV9osuZYTAnR9IKBakY3tRE1Q7aTTyT4tMmS/GrwY+IB
29
- qih6K+1QUvvm0euQNIlHfM0RQ+cgISMezNJRmDtldZTLI5NbSnbO6mW+QoFcKmXz
30
- +Zut89O9LtR+kOHx2W1p7eHudOUB4L6lCafXA1O54piyMbYsde8oHmAjW39hKaUo
31
- r061XXjdbf9qKeUjTZ6lmWaQMjM=
32
- -----END CERTIFICATE-----
33
-
34
- date: 2011-04-05 00:00:00 +03:00
11
+ cert_chain: []
12
+ date: 2011-04-06 00:00:00.000000000 +03:00
35
13
  default_executable:
36
14
  dependencies: []
37
-
38
- description: Simple tool to benchmark sites
15
+ description: Simple tool to test and benchmark sites
39
16
  email: germaninthetown@gmail.com
40
- executables:
17
+ executables:
41
18
  - nethttp_ab
42
19
  extensions: []
43
-
44
- extra_rdoc_files:
20
+ extra_rdoc_files:
21
+ - CHANGELOG
22
+ - LICENSE
45
23
  - README
46
24
  - bin/nethttp_ab
47
25
  - lib/net.rb
48
26
  - lib/requester.rb
49
27
  - lib/requests_queue.rb
50
28
  - lib/simple_requests_queue.rb
51
- files:
29
+ files:
30
+ - CHANGELOG
31
+ - LICENSE
32
+ - Manifest
52
33
  - README
53
34
  - Rakefile
54
35
  - bin/nethttp_ab
@@ -56,46 +37,43 @@ files:
56
37
  - lib/requester.rb
57
38
  - lib/requests_queue.rb
58
39
  - lib/simple_requests_queue.rb
40
+ - nethttp_ab.gemspec
59
41
  - test/nethttp_ab_test.rb
60
42
  - test/requests_queue_test.rb
61
43
  - test/resources/index.html
62
44
  - test/simple_requests_queue_test.rb
63
- - Manifest
64
- - nethttp_ab.gemspec
65
45
  has_rdoc: true
66
46
  homepage: http://github.com/german/nethttp_ab
67
47
  licenses: []
68
-
69
48
  post_install_message:
70
- rdoc_options:
49
+ rdoc_options:
71
50
  - --line-numbers
72
51
  - --inline-source
73
52
  - --title
74
53
  - Nethttp_ab
75
54
  - --main
76
55
  - README
77
- require_paths:
56
+ require_paths:
78
57
  - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
58
+ required_ruby_version: !ruby/object:Gem::Requirement
80
59
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: "0"
85
- required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
65
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "1.2"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '1.2'
91
70
  requirements: []
92
-
93
71
  rubyforge_project: nethttp_ab
94
72
  rubygems_version: 1.6.2
95
73
  signing_key:
96
74
  specification_version: 3
97
- summary: Simple tool to benchmark sites
98
- test_files:
99
- - test/simple_requests_queue_test.rb
100
- - test/requests_queue_test.rb
75
+ summary: Simple tool to test and benchmark sites
76
+ test_files:
101
77
  - test/nethttp_ab_test.rb
78
+ - test/requests_queue_test.rb
79
+ - test/simple_requests_queue_test.rb
data.tar.gz.sig DELETED
@@ -1 +0,0 @@
1
- ��5�\',�-�Oº� �ۓ���s�*��HKȴH��!�o��>:�=�h�|C�'�\��Ws��s���)���bâΘ U�>���o_�uT�Sm/�;��9S�����^�)��P����KO‰�v�o�g���^ը����L��wU������<cHb��u�*�t0M�u��\�
metadata.gz.sig DELETED
Binary file