http_sequence 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/http_sequence.rb +48 -0
  2. metadata +110 -0
@@ -0,0 +1,48 @@
1
+ # encoding: utf-8
2
+ require 'json'
3
+ require 'httpclient'
4
+
5
+ class HttpSequence
6
+
7
+ def clean_contents!(contents)
8
+ contents.gsub!(/\A\xEF\xBB\xBF/, '')
9
+ contents.force_encoding 'UTF-8'
10
+ end
11
+
12
+ def post_params_to_hash(params)
13
+ params_hash = {}
14
+ params.each do|p|
15
+ params_hash[p['name']] = p['value']
16
+ end
17
+
18
+ params_hash
19
+ end
20
+
21
+ def initialize(har_file)
22
+ f = File.open(har_file)
23
+ contents = f.read
24
+ clean_contents!(contents)
25
+
26
+ @har_contents = JSON.parse(contents)
27
+ end
28
+
29
+ def replay()
30
+ @har_contents['log']['entries'].each do|entry|
31
+ request = entry['request']
32
+ query_string = request['queryString']
33
+ url = request['url']
34
+ method = request['method']
35
+
36
+ client = HTTPClient.new
37
+ if method == 'GET'
38
+ client.get url
39
+ else
40
+ params = entry['request']['postData']['params']
41
+ params = post_params_to_hash params
42
+ client.post url, params
43
+ end
44
+ end
45
+
46
+ end
47
+
48
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: http_sequence
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nate Reed
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: httpclient
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: httpclient
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: Loads and replays sequences of HTTP requests from HAR (HTTP Archive)
79
+ files.
80
+ email: nate@natereed.com
81
+ executables: []
82
+ extensions: []
83
+ extra_rdoc_files: []
84
+ files:
85
+ - lib/http_sequence.rb
86
+ homepage: http://rubygems.org/gems/http_sequence
87
+ licenses: []
88
+ post_install_message:
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubyforge_project:
106
+ rubygems_version: 1.8.24
107
+ signing_key:
108
+ specification_version: 3
109
+ summary: Loads and replays sequences of HTTP requests from HAR (HTTP Archive) files.
110
+ test_files: []