forked from anantshri/script-collection
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwadl_statistics_reporter.py
61 lines (57 loc) · 1.55 KB
/
wadl_statistics_reporter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/python
from BeautifulSoup import BeautifulSoup
import httplib
import sys
#print sys.argv
def read_url(type,host,url):
if type == "https":
conn = httplib.HTTPSConnection(host,timeout=30)
else:
conn = httplib.HTTPConnection(host,timeout=30)
try:
conn.request('GET',url)
except:
print 'connection fail'
return conn.getresponse().read()
if len(sys.argv) == 4:
type=sys.argv[1]
host=sys.argv[2]
url=sys.argv[3]
link_read=read_url(type,host,url)
souper=BeautifulSoup(link_read)
x=souper.findAll("method")
a=1
get=0
post=0
put=0
delete=0
paramcount=0
print "S.No. , Type, method name, parameter count"
for m in x:
print str(a) + " " + m['name'] + " " + m['id'] + " " + str(len(m.findAll("param")))
paramcount = paramcount + len(m.findAll("param"))
if m['name'] == "POST":
post= post+1
elif m['name'] == "GET":
get=get+1
elif m['name'] == "PUT":
put=put+1
elif m['name'] == "DELETE":
delete=delete+1
a=a+1
print "GET : " + str(get)
print "POST : " + str(post)
print "PUT : " + str(put)
print "DELETE : " + str(delete)
y=souper.findAll("param")
print "Total Method : " + str(len(x))
print "Total Param : " + str(len(y)) + " " + str(paramcount)
print "Average Parameter count : " + str(len(y)/float(len(x)))
else:
print "========================="
print " WADL statistic reporter"
print "========================="
print "Display stats about WADL"
print "Usage is : " + sys.argv[0] + " HTTP/HTTPS HOST_NAME URL"
print "Example : " + sys.argv[0] + " http google.com /path/to/wadl.wadl"
exit()