-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
143 lines (124 loc) · 4.99 KB
/
build.xml
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<project name="YLZPerformanceTest" basedir=".">
<property name="src.dir" value="${basedir}/src" />
<property name="classes.dir" value="${basedir}/build/classes" />
<property name="lib.dir" value="${basedir}/lib" />
<property name="script.dir" value="${basedir}/../testscript" />
<property name="test.results.file" value="${basedir}/../results" />
<property name="copy" value="${basedir}/../copy" />
<property name="copyOld" value="${basedir}/../copyOld" />
<property name="jmeter.home.dir" value="${basedir}/../jakarta-jmeter-2.4" />
<property name="test.data.folder" value="${basedir}/../testData" />
<property name="runremote" value="false" />
<property name="totalThreadNumber" value="1" />
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" classpath="./lib/ant-jmeter-1.0.9.jar" />
<macrodef name="run.performance.tests">
<attribute name="thread.number" />
<attribute name="test.data.folder" />
<sequential>
<jmeter runremote="${runremote}" jmeterhome="${jmeter.home.dir}" resultlog="${test.results.file}/${number}.jtl">
<jvmarg value="-Dfile.encoding=UTF-8" />
<testplans dir="${script.dir}" includes="*.jmx" />
<property name="thread.number" value="@{thread.number}" />
<property name="rampup.period" value="0" />
<property name="loop.count" value="1" />
<property name="server.name" value="www.goodhopetest.com" />
<property name="test.data.folder" value="@{test.data.folder}" />
</jmeter>
</sequential>
</macrodef>
<path id="classpath">
<fileset dir="${lib.dir}" includes="*.jar" />
</path>
<target name="init">
<delete dir="${classes.dir}" />
</target>
<target name="compile" depends="init">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" encoding="utf-8" />
</target>
<target name="generate.reports">
<xslt style="./jmeter-results-detail-report-improved.xsl" in="${test.results.file}/${number}.jtl" out="${test.results.file}/${number}.html" />
</target>
<target name="runJmeter">
<!-- <echo message="get Data of ${number}" />
<antcall target="GetTestData" />-->
<echo message="run thread of ${number}" />
<delete>
<fileset dir="${test.results.file}">
<include name="${number}.jtl" />
<include name="${number}.html" />
</fileset>
</delete>
<run.performance.tests thread.number="${number}" test.data.folder="${test.data.folder}" />
<antcall target="generate.reports" />
<move file="${test.results.file}/${number}.html" tofile="${copy}/${number}.html" overwrite="true" />
<antcall target="FromHtmlToExcel" />
<antcall target="sleep" />
</target>
<target name="FromHtmlToExcel" description="write data to excel from html ">
<java classname="com.ylzinfo.test.performance.FromHtmlToExcel" classpathref="classpath" fork="yes">
<arg line="file:///${copy}/${number}.html ${number} ${sheetNumber}" />
<classpath>
<pathelement location="${classes.dir}" />
</classpath>
</java>
</target>
<target name="SheetMerge" description="get final excel ">
<java classname="com.ylzinfo.test.performance.SheetMerge" classpathref="classpath" fork="yes">
<arg line="${totalThreadNumber}" />
<classpath>
<pathelement location="${classes.dir}" />
</classpath>
</java>
</target>
<target name="GetTestData" depends="compile" description="get test data">
<property name="number" value="1000" />
<java classname="com.ylzinfo.test.performance.GetTestData" classpathref="classpath" fork="yes">
<arg line="${number}" />
<classpath>
<pathelement location="${classes.dir}" />
</classpath>
</java>
</target>
<target name="sendmail" description="send result mail">
<mail mailhost="smtp.ylzinfo.com" user="[email protected]" password="466514166" subject="jmeterTest" mailport="25">
<from address="[email protected]" />
<to address="[email protected]" />
<message>This is auto PerformancefTest results(without apache)</message>
<attachments>
<fileset dir="${copy}">
<include name="*.html" />
<include name="*.xlsx" />
</fileset>
</attachments>
</mail>
</target>
<target name="sleep">
<echo message="sleep for 8 minutes" />
<sleep minutes="8" />
<echo message="continue" />
</target>
<target name="run.all.thread" depends="compile" description="run four different threads">
<copy todir="${copyOld}" file="${copy}/result.xlsx" overwrite="true" />
<antcall target="runJmeter">
<param name="number" value="50" />
<param name="sheetNumber" value="0" />
</antcall>
<antcall target="runJmeter">
<param name="number" value="100" />
<param name="sheetNumber" value="1" />
</antcall>
<antcall target="runJmeter">
<param name="number" value="200" />
<param name="sheetNumber" value="2" />
</antcall>
<antcall target="runJmeter">
<param name="number" value="500" />
<param name="sheetNumber" value="3" />
</antcall>
<antcall target="SheetMerge">
<param name="totalThreadNumber" value="4" />
</antcall>
<antcall target="sendmail" />
</target>
</project>