-
Notifications
You must be signed in to change notification settings - Fork 0
/
StressTest.py
74 lines (69 loc) · 2.87 KB
/
StressTest.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
62
63
64
65
66
67
68
69
70
71
72
73
74
#coding:utf-8
import os
import subprocess
import time
from ReplaceVariables import Config
class ST():
def allrun(self):
masterIP = '123.207.121.251'
txt_name = time.strftime("%Y%m%d_%H%M%S")
file_list = os.listdir(__dir__)
jmx = []
for i in file_list:
if '.jmx' in i:
jmx.append(i)
with open(__dir__+'/result_'+txt_name+'.txt','w+') as f:
for filename in jmx:
print filename
c = subprocess.Popen('scp %s/%s [email protected]:/data/jmetertest/jmetertest/jmx/' % (__dir__,filename),shell=True).wait()
a = os.popen("ssh -t -t root@%s docker ps -a | grep jmeter-master | awk '{ print $1 }'"%masterIP).read()
a = a.strip()
#subprocess.Popen('ssh -t -t [email protected] docker exec -it %s /bin/sh ./jmeter/jmetertest.sh %s' % (a,filename),shell=True).wait()
v=os.popen('ssh -t -t root@%s docker exec -it %s /bin/sh ./jmeter/jmetertest.sh %s' % (masterIP,a,filename)).readlines()
for i in v:
if 'Start JMeter Test' in i:
f.write(i.split(' ')[3]+'\n')
if "summary =" in i:
f.write(i)
time.sleep(1)
f.write('\n')
print filename+':已完成'
print '-------------------'
def mkdir(self,num):
if os.path.exists('C:\Users\Administrator\Desktop\jmeter%d' % num):
print u'已经存在'
exit()
else:
os.makedirs('C:\Users\Administrator\Desktop\jmeter%d' % num)
def change(self,num,Iteration,jmx):
patt = re.compile(r"\>(.*?)\<", re.M)
for filename in jmx:
r_file = open(__dir__ + '\\basescript\jmeter\%s' % filename, 'r')
w_file = open(__dir__ + '\\newscript\jmeter%s\%s' % (num, filename), 'w')
b = r_file.readlines()
c = []
for i in range(len(b)):
if '<stringProp name="ThreadGroup.num_threads">' in b[i]:
new = b[i].replace(patt.findall(b[i])[0], num)
c.append(new)
continue
if '<stringProp name="LoopController.loops">' in b[i]:
new = b[i].replace(patt.findall(b[i])[0], Iteration)
c.append(new)
continue
c.append(b[i])
for i in c:
w_file.write(i)
r_file.close()
w_file.close()
if __name__ =="__main__":
st = ST()
num = 800
Iteration = '20'
mkdir(num)
file_list = os.listdir('C:\Users\Administrator\Desktop\jmeter')
jmx = []
for i in file_list:
if '.jmx' in i:
jmx.append(i)
change(num,Iteration,jmx)