释放双眼,带上耳机,听听看~!
下面是我写的一个性能测试脚本,脚本中运行出来的response received的时间比用httpClient跑出来的正常时间要长,自认为是读取文件的时候耗费了不少时间,不知道该怎么优化,求指点
1.
[代码]http_post.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 1'''
2Created on 2013-4-16
3
4
5@author: zdh
6
7
8create project: multimech-newproject my_project
9run test: multimech-run my_project
10'''
11import httplib
12import urllib
13import time
14import json
15
16
17class Transaction(object):
18
19 def __init__(self):
20 self.custom_timers = {}
21
22
23 def run(self):
24 conn = httplib.HTTPConnection("localhost:8080")
25 headers = {"Content-type": "application/json"} #application/x-www-form-urlencoded,"Aceept":"text/plain"
26 params = ({"bindHyCardInfo":{"mobileNo":"1881026xxxx","userId":"2","hYCardno":line,"bankCardNo":"622xxxxxxxxxxxxx","ip":"127.0.0.1"},"header":{"version":"1.0.1","from":"1000","to":"2000","tid":line,"time":"12312","token":"SEW342WEER2342","ext":""}})
27 start = time.time()
28 conn.request("POST", "/core-oper/rest/bindHyCard", json.JSONEncoder().encode(params), headers)
29 response = conn.getresponse()
30 response_time = time.time()
31 data = response.read()
32 print data
33 conn.close()
34 transfer_time = time.time()
35 self.custom_timers['response received'] = response_time - start
36 self.custom_timers['content transferred'] = transfer_time - start
37
38
39
40if __name__ == '__main__':
41
42 file = open("E://card.txt")
43 while 1:
44 lines = file.readlines()
45 if not lines:
46 break
47 for line in lines:
48 line = line.strip('\n')
49 trans = Transaction()
50 trans.run()
51 for timer in ('response received', 'content transferred'):
52 print '%s: %.5f secs' % (timer, trans.custom_timers[timer])
53 file.close()
54