Revision 0:53910be9bd5d
WebContent/WEB-INF/web.xml | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 | 2 |
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> |
3 |
<display-name>M2U UPass Web Services</display-name>
|
|
3 |
<display-name>Agrobank UPass Web Services</display-name>
|
|
4 | 4 |
<welcome-file-list> |
5 | 5 |
<welcome-file>index.html</welcome-file> |
6 | 6 |
<welcome-file>index.htm</welcome-file> |
... | ... | |
47 | 47 |
<servlet-name>AdminServlet</servlet-name> |
48 | 48 |
<url-pattern>/servlet/AdminServlet</url-pattern> |
49 | 49 |
</servlet-mapping> |
50 |
</web-app> |
|
50 |
</web-app> |
WebContent/wsdl/WS_UPass.wsdl | ||
---|---|---|
2437 | 2437 |
<wsdl:port binding="impl:WS_UPassSoapBinding" name="WS_UPass"> |
2438 | 2438 |
|
2439 | 2439 |
<wsdlsoap:address |
2440 |
location="http://localhost:8080/m2u-upass-ws/services/WS_UPass" />
|
|
2440 |
location="http://localhost:8080/agro-upass-ws/services/WS_UPass" />
|
|
2441 | 2441 |
|
2442 | 2442 |
</wsdl:port> |
2443 | 2443 |
|
pom.xml | ||
---|---|---|
4 | 4 |
<modelVersion>4.0.0</modelVersion> |
5 | 5 |
|
6 | 6 |
<groupId>net.penril</groupId> |
7 |
<artifactId>m2u-upass-ws</artifactId>
|
|
7 |
<artifactId>agro-upass-ws</artifactId>
|
|
8 | 8 |
<version>2.0-SNAPSHOT</version> |
9 | 9 |
<packaging>war</packaging> |
10 |
<name>M2U UPass Web Services</name> |
|
10 |
<name>Agrobank UPass Web Services</name> |
|
11 |
|
|
11 | 12 |
<properties> |
12 | 13 |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
13 | 14 |
<cobertura.version>1.9.4.1</cobertura.version> |
14 | 15 |
<config.postfix /> |
15 | 16 |
<tomcat.home>/var/lib/jenkins/apache-tomcat-5.5.33</tomcat.home> |
16 |
<m2u-upass-classifier></m2u-upass-classifier> |
|
17 | 17 |
</properties> |
18 |
|
|
18 | 19 |
<pluginRepositories> |
19 | 20 |
<pluginRepository> |
20 | 21 |
<id>eviwarePluginRepository</id> |
21 | 22 |
<url>http://www.eviware.com/repository/maven2/</url> |
22 | 23 |
</pluginRepository> |
23 | 24 |
</pluginRepositories> |
24 |
<distributionManagement> |
|
25 |
<snapshotRepository> |
|
26 |
<id>penril.nexus.repo</id> |
|
27 |
<name>Penril Nexus Repo</name> |
|
28 |
<url>scp://staging.penril.net/usr/share/tomcat5/sonatype-work/nexus/storage/snapshots</url> |
|
29 |
<uniqueVersion>false</uniqueVersion> |
|
30 |
</snapshotRepository> |
|
31 |
</distributionManagement> |
|
25 |
|
|
32 | 26 |
<build> |
33 | 27 |
<pluginManagement> |
34 | 28 |
<plugins> |
... | ... | |
57 | 51 |
<stopPort>9005</stopPort> |
58 | 52 |
<stopKey>STOP</stopKey> |
59 | 53 |
<contextPath>${project.artifactId}</contextPath> |
60 |
<jettyConfig>target/classes/jetty.xml</jettyConfig> |
|
61 | 54 |
</configuration> |
62 | 55 |
</plugin> |
63 | 56 |
</plugins> |
... | ... | |
94 | 87 |
<artifactId>maven-compiler-plugin</artifactId> |
95 | 88 |
<version>2.3.2</version> |
96 | 89 |
<configuration> |
97 |
<source>1.5</source>
|
|
98 |
<target>1.5</target>
|
|
90 |
<source>1.6</source>
|
|
91 |
<target>1.6</target>
|
|
99 | 92 |
</configuration> |
100 | 93 |
</plugin> |
101 | 94 |
<plugin> |
... | ... | |
154 | 147 |
<value>dev-penril</value> |
155 | 148 |
</property> |
156 | 149 |
</activation> |
150 |
<distributionManagement> |
|
151 |
<snapshotRepository> |
|
152 |
<id>penril.nexus.repo</id> |
|
153 |
<name>Penril Nexus Repo</name> |
|
154 |
<url>scp://staging.penril.net/usr/share/tomcat5/sonatype-work/nexus/storage/snapshots</url> |
|
155 |
</snapshotRepository> |
|
156 |
</distributionManagement> |
|
157 | 157 |
<properties> |
158 | 158 |
<config.postfix>.dev-penril</config.postfix> |
159 | 159 |
</properties> |
... | ... | |
166 | 166 |
<value>staging-ci</value> |
167 | 167 |
</property> |
168 | 168 |
</activation> |
169 |
<distributionManagement> |
|
170 |
<snapshotRepository> |
|
171 |
<id>penril.nexus.repo.coverage</id> |
|
172 |
<name>Penril Nexus Repo (Coverage)</name> |
|
173 |
<url>scp://staging.penril.net/usr/share/tomcat5/sonatype-work/nexus/storage/snapshots-coverage</url> |
|
174 |
</snapshotRepository> |
|
175 |
</distributionManagement> |
|
169 | 176 |
<properties> |
170 | 177 |
<config.postfix>.staging-ci</config.postfix> |
171 | 178 |
</properties> |
179 |
<repositories> |
|
180 |
<repository> |
|
181 |
<id>nexus-penril-coverage</id> |
|
182 |
<name>Penril's Maven Repository for Code Coverage</name> |
|
183 |
<url>http://staging.penril.net:8080/nexus/content/repositories/snapshots-coverage</url> |
|
184 |
<layout>default</layout> |
|
185 |
</repository> |
|
186 |
</repositories> |
|
172 | 187 |
<build> |
173 | 188 |
<plugins> |
174 | 189 |
<plugin> |
... | ... | |
177 | 192 |
<configuration> |
178 | 193 |
<webAppSourceDirectory>${basedir}/WebContent</webAppSourceDirectory> |
179 | 194 |
<classesDirectory>${project.build.directory}/generated-classes/cobertura</classesDirectory> |
180 |
<!-- <webApp>${project.build.directory}/${project.artifactId}-instrument.${project.packaging}</webApp> --> |
|
181 | 195 |
</configuration> |
182 | 196 |
<executions> |
183 | 197 |
<execution> |
... | ... | |
254 | 268 |
<name>cobertura-build</name> |
255 | 269 |
</property> |
256 | 270 |
</activation> |
257 |
<properties> |
|
258 |
<m2u-upass-classifier>instrumented</m2u-upass-classifier> |
|
259 |
</properties> |
|
260 | 271 |
<distributionManagement> |
261 | 272 |
<snapshotRepository> |
262 | 273 |
<id>penril.nexus.repo.coverage</id> |
... | ... | |
267 | 278 |
<build> |
268 | 279 |
<plugins> |
269 | 280 |
<plugin> |
270 |
<artifactId>maven-war-plugin</artifactId> |
|
271 |
<configuration> |
|
272 |
<classifier>${m2u-upass-classifier}</classifier> |
|
273 |
<packagingExcludes>WEB-INF/lib/m2u-upass-*SNAPSHOT.jar</packagingExcludes> |
|
274 |
</configuration> |
|
275 |
</plugin> |
|
276 |
<plugin> |
|
277 | 281 |
<groupId>org.codehaus.mojo</groupId> |
278 | 282 |
<artifactId>cobertura-maven-plugin</artifactId> |
279 | 283 |
<configuration> |
... | ... | |
411 | 415 |
<configuration> |
412 | 416 |
<target> |
413 | 417 |
<echo message="Creating a directory required by our JMeter test plan." /> |
414 |
<mkdir dir="${basedir}/target/jmeter/responses/add" /> |
|
415 |
<mkdir dir="${basedir}/target/jmeter/responses/auth" /> |
|
418 |
<mkdir dir="${basedir}/target/jmeter/responses" /> |
|
416 | 419 |
</target> |
417 | 420 |
</configuration> |
418 | 421 |
<goals> |
... | ... | |
420 | 423 |
</goals> |
421 | 424 |
</execution> |
422 | 425 |
</executions> |
423 |
</plugin> |
|
426 |
</plugin>
|
|
424 | 427 |
<plugin> |
425 | 428 |
<groupId>org.codehaus.mojo</groupId> |
426 | 429 |
<artifactId>exec-maven-plugin</artifactId> |
... | ... | |
434 | 437 |
<argument>${project.build.directory}/jmeter/result.jtl</argument> |
435 | 438 |
<argument>-J</argument> |
436 | 439 |
<argument>jmeter.save.saveservice.output_format=xml</argument> |
437 |
<argument>-J</argument> |
|
438 |
<argument>jmeter.save.saveservice.thread_counts=true</argument> |
|
439 | 440 |
<argument>-j</argument> |
440 | 441 |
<argument>${project.build.directory}/jmeter/jmeter.log</argument> |
441 | 442 |
</arguments> |
... | ... | |
454 | 455 |
</dependency> |
455 | 456 |
<dependency> |
456 | 457 |
<groupId>net.penril</groupId> |
457 |
<artifactId>m2u-upass-core</artifactId>
|
|
458 |
<artifactId>agro-upass</artifactId>
|
|
458 | 459 |
<version>2.0-SNAPSHOT</version> |
459 |
<classifier>${m2u-upass-classifier}</classifier> |
|
460 |
<exclusions> |
|
461 |
<exclusion> |
|
462 |
<groupId>net.penril</groupId> |
|
463 |
<artifactId>m2u-upass-min</artifactId> |
|
464 |
</exclusion> |
|
465 |
</exclusions> |
|
466 |
</dependency> |
|
467 |
<dependency> |
|
468 |
<groupId>net.penril</groupId> |
|
469 |
<artifactId>m2u-upass-min</artifactId> |
|
470 |
<version>2.0-SNAPSHOT</version> |
|
471 |
<classifier>${m2u-upass-classifier}</classifier> |
|
460 |
<type>jar</type> |
|
461 |
<scope>compile</scope> |
|
472 | 462 |
</dependency> |
473 | 463 |
<dependency> |
474 | 464 |
<groupId>axis</groupId> |
resources/jetty.xml | ||
---|---|---|
1 |
<?xml version="1.0"?> |
|
2 |
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> |
|
3 |
|
|
4 |
<Configure id="Server" class="org.mortbay.jetty.Server"> |
|
5 |
|
|
6 |
<!-- =========================================================== --> |
|
7 |
<!-- Server Thread Pool --> |
|
8 |
<!-- =========================================================== --> |
|
9 |
<Set name="ThreadPool"> |
|
10 |
<New class="org.mortbay.thread.QueuedThreadPool"> |
|
11 |
<!-- initial threads set to 10 --> |
|
12 |
<Set name="minThreads">50</Set> |
|
13 |
|
|
14 |
<!-- the thread pool will grow only up to 200 --> |
|
15 |
<Set name="maxThreads">150</Set> |
|
16 |
|
|
17 |
<!-- indicates that having 20 and below, the pool will be considered low |
|
18 |
on threads --> |
|
19 |
<!-- <Set name="lowThreads">100</Set> --> |
|
20 |
|
|
21 |
<!-- The number of queued jobs (or idle threads) needed before the thread |
|
22 |
pool is grown (or shrunk) --> |
|
23 |
<Set name="SpawnOrShrinkAt">2</Set> |
|
24 |
</New> |
|
25 |
</Set> |
|
26 |
</Configure> |
resources/log4j.dev-penril.xml | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 | 2 |
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > |
3 | 3 |
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> |
4 |
<appender name="Log" class="org.apache.log4j.DailyRollingFileAppender">
|
|
5 |
<param name="File" value="./m2u-upass-ws.log" />
|
|
4 |
<appender name="logPath" class="org.apache.log4j.DailyRollingFileAppender">
|
|
5 |
<param name="File" value="./upass-ws.log" /> |
|
6 | 6 |
<param name="Append" value="true" /> |
7 | 7 |
<param name="DatePattern" value="@yyyy-MM-dd"/> |
8 | 8 |
<layout class="org.apache.log4j.PatternLayout"> |
... | ... | |
18 | 18 |
|
19 | 19 |
<logger name="my.com.upass"> |
20 | 20 |
<level value="debug"/> |
21 |
<appender-ref ref="Log"/>
|
|
21 |
<appender-ref ref="logPath"/>
|
|
22 | 22 |
</logger> |
23 | 23 |
|
24 | 24 |
<root> |
25 | 25 |
<priority value="error" /> |
26 |
<appender-ref ref="Log"/>
|
|
26 |
<appender-ref ref="logPath"/>
|
|
27 | 27 |
</root> |
28 | 28 |
</log4j:configuration> |
resources/log4j.staging-ci.xml | ||
---|---|---|
2 | 2 |
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > |
3 | 3 |
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> |
4 | 4 |
<appender name="Log" class="org.apache.log4j.DailyRollingFileAppender"> |
5 |
<param name="File" value="./m2u-upass-ws.log" />
|
|
5 |
<param name="File" value="C:/agro-ws-upass.log" />
|
|
6 | 6 |
<param name="Append" value="true" /> |
7 | 7 |
<param name="DatePattern" value="@yyyy-MM-dd"/> |
8 | 8 |
<layout class="org.apache.log4j.PatternLayout"> |
... | ... | |
25 | 25 |
<priority value="error" /> |
26 | 26 |
<appender-ref ref="Log"/> |
27 | 27 |
</root> |
28 |
</log4j:configuration>
|
|
28 |
</log4j:configuration> |
resources/log4j.xml | ||
---|---|---|
2 | 2 |
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > |
3 | 3 |
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> |
4 | 4 |
<appender name="Log" class="org.apache.log4j.DailyRollingFileAppender"> |
5 |
<param name="File" value="./m2u-upass-ws.log" />
|
|
5 |
<param name="File" value="./agro-ws-upass.log" />
|
|
6 | 6 |
<param name="Append" value="true" /> |
7 | 7 |
<param name="DatePattern" value="@yyyy-MM-dd"/> |
8 | 8 |
<layout class="org.apache.log4j.PatternLayout"> |
src/my/ws/upass/WS_UPass.java | ||
---|---|---|
28 | 28 |
*/ |
29 | 29 |
public class WS_UPass { |
30 | 30 |
|
31 |
UPassControllerV2 upcV2 = new UPassControllerV2();
|
|
31 |
UPassControllerV2 upc = new UPassControllerV2(); |
|
32 | 32 |
|
33 | 33 |
public int wsAD_AddUser(String rootAlias, String rootPassword, |
34 | 34 |
String adminUserAlias, String adminDesc, String adminUserPassword) { |
35 | 35 |
|
36 |
return upcV2.AD_AddUser(rootAlias, rootPassword, adminUserAlias, adminDesc, adminUserPassword);
|
|
36 |
return upc.AD_AddUser(rootAlias, rootPassword, adminUserAlias, adminDesc, adminUserPassword); |
|
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
public int wsAD_ModifyUser(String rootAlias, String rootPassword, |
40 | 40 |
String adminUserAlias, String adminDesc, String adminUserPassword) { |
41 | 41 |
|
42 |
return upcV2.AD_ModifyUser(rootAlias, rootPassword, adminUserAlias, adminDesc, adminUserPassword);
|
|
42 |
return upc.AD_ModifyUser(rootAlias, rootPassword, adminUserAlias, adminDesc, adminUserPassword); |
|
43 | 43 |
} |
44 | 44 |
|
45 | 45 |
public int wsAD_ActivateUser(String rootAlias, String rootPassword, String adminUserAlias) { |
46 | 46 |
|
47 |
return upcV2.AD_ActivateUser(rootAlias, rootPassword, adminUserAlias);
|
|
47 |
return upc.AD_ActivateUser(rootAlias, rootPassword, adminUserAlias); |
|
48 | 48 |
} |
49 | 49 |
|
50 | 50 |
public int wsAD_LockUser(String rootAlias, String rootPassword, String adminUserAlias) { |
51 | 51 |
|
52 |
return upcV2.AD_LockUser(rootAlias, rootPassword, adminUserAlias);
|
|
52 |
return upc.AD_LockUser(rootAlias, rootPassword, adminUserAlias); |
|
53 | 53 |
} |
54 | 54 |
|
55 | 55 |
public int wsAD_SuspendUser(String rootAlias, String rootPassword, |
56 | 56 |
String adminUserAlias, String fromDate, int nMinutes) { |
57 | 57 |
|
58 |
return upcV2.AD_SuspendUser(rootAlias, rootPassword, adminUserAlias, fromDate, nMinutes);
|
|
58 |
return upc.AD_SuspendUser(rootAlias, rootPassword, adminUserAlias, fromDate, nMinutes); |
|
59 | 59 |
} |
60 | 60 |
|
61 | 61 |
// ///////////////////////////////////////////////////////////////////////////// |
... | ... | |
65 | 65 |
public int wsUA_AddUser(String adminUserAlias, String adminUserPassword, |
66 | 66 |
String userAlias, String userDesc, String userPassword, int appId) { |
67 | 67 |
|
68 |
return upcV2.UA_AddUser(adminUserAlias, adminUserPassword, userAlias, userDesc, userPassword, appId);
|
|
68 |
return upc.UA_AddUser(adminUserAlias, adminUserPassword, userAlias, userDesc, userPassword, appId); |
|
69 | 69 |
} |
70 | 70 |
|
71 | 71 |
public int wsUA_ModifyUser(String adminUserAlias, String adminUserPassword, |
72 | 72 |
String userAlias, String userDesc, String userPassword) { |
73 | 73 |
|
74 |
return upcV2.UA_ModifyUser(adminUserAlias, adminUserPassword, userAlias, userDesc, userPassword);
|
|
74 |
return upc.UA_ModifyUser(adminUserAlias, adminUserPassword, userAlias, userDesc, userPassword); |
|
75 | 75 |
} |
76 | 76 |
|
77 | 77 |
public int wsUA_ActivateUser(String adminUserAlias, String adminUserPassword, String userAlias) { |
78 | 78 |
|
79 |
return upcV2.UA_ActivateUser(adminUserAlias, adminUserPassword, userAlias);
|
|
79 |
return upc.UA_ActivateUser(adminUserAlias, adminUserPassword, userAlias); |
|
80 | 80 |
} |
81 | 81 |
|
82 | 82 |
public int wsUA_LockUser(String adminUserAlias, String adminUserPassword, String userAlias) { |
83 | 83 |
|
84 |
return upcV2.UA_LockUser(adminUserAlias, adminUserPassword, userAlias);
|
|
84 |
return upc.UA_LockUser(adminUserAlias, adminUserPassword, userAlias); |
|
85 | 85 |
} |
86 | 86 |
|
87 | 87 |
public int wsUA_SuspendUser(String adminUserAlias, String adminUserPassword, |
88 | 88 |
String userAlias, String fromDate, int nMinutes) { |
89 | 89 |
|
90 |
return upcV2.UA_SuspendUser(adminUserAlias, adminUserPassword, userAlias, fromDate, nMinutes);
|
|
90 |
return upc.UA_SuspendUser(adminUserAlias, adminUserPassword, userAlias, fromDate, nMinutes); |
|
91 | 91 |
} |
92 | 92 |
|
93 | 93 |
public int wsUA_IsUserExist(String userAlias) { |
94 | 94 |
|
95 |
return upcV2.UA_IsUserExist(userAlias);
|
|
95 |
return upc.UA_IsUserExist(userAlias); |
|
96 | 96 |
} |
97 | 97 |
|
98 | 98 |
public int wsUA_GetUserType(String userAlias) { |
99 | 99 |
|
100 |
return upcV2.UA_GetUserType(userAlias);
|
|
100 |
return upc.UA_GetUserType(userAlias); |
|
101 | 101 |
} |
102 | 102 |
|
103 | 103 |
public int wsUA_DeleteUser(String adminUserAlias, String adminUserPassword, String userAlias) { |
104 | 104 |
|
105 |
return upcV2.UA_DeleteUser(adminUserAlias, adminUserPassword, userAlias);
|
|
105 |
return upc.UA_DeleteUser(adminUserAlias, adminUserPassword, userAlias); |
|
106 | 106 |
} |
107 | 107 |
|
108 | 108 |
// ///////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
111 | 111 |
|
112 | 112 |
public int wsSP_Login(String userAlias, String password) { |
113 | 113 |
|
114 |
return upcV2.SP_Login(userAlias, password);
|
|
114 |
return upc.SP_Login(userAlias, password); |
|
115 | 115 |
} |
116 | 116 |
|
117 | 117 |
public int wsSP_VerifyStaticPassword(String userAlias, String password) { |
118 | 118 |
|
119 |
return upcV2.SP_VerifyStaticPassword(userAlias, password); |
|
120 |
// return upc.SP_VerifyStaticPassword(userAlias, password); |
|
119 |
return upc.SP_VerifyStaticPassword(userAlias, password); |
|
121 | 120 |
} |
122 | 121 |
|
123 | 122 |
public int wsSP_ChangeStaticPassword(String userAlias, String newPassword, String oldPassword) { |
124 | 123 |
|
125 |
return upcV2.SP_ChangeStaticPassword(userAlias, newPassword, oldPassword);
|
|
124 |
return upc.SP_ChangeStaticPassword(userAlias, newPassword, oldPassword); |
|
126 | 125 |
} |
127 | 126 |
|
128 | 127 |
public int wsSP_ForceChangeStaticPassword(String userAlias, String newPassword, String oldPassword) { |
129 | 128 |
|
130 |
return upcV2.SP_ForceChangeStaticPassword(userAlias, newPassword, oldPassword);
|
|
129 |
return upc.SP_ForceChangeStaticPassword(userAlias, newPassword, oldPassword); |
|
131 | 130 |
} |
132 | 131 |
|
133 | 132 |
public int wsSP_VerifyPasswordComplexity(String password, int appId) { |
134 | 133 |
|
135 |
return upcV2.VerifyPasswordComplexity(password, appId);
|
|
134 |
return upc.VerifyPasswordComplexity(password, appId); |
|
136 | 135 |
} |
137 | 136 |
|
138 | 137 |
// ///////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
141 | 140 |
|
142 | 141 |
public String wsGenerateTAC(String userAlias, int appId) { |
143 | 142 |
|
144 |
return upcV2.GenerateTAC(userAlias, appId);
|
|
143 |
return upc.GenerateTAC(userAlias, appId); |
|
145 | 144 |
} |
146 | 145 |
|
147 | 146 |
public String wsGenerateTACwithSessionID(String userAlias, String sessionID, int appId) { |
148 | 147 |
|
149 |
return upcV2.GenerateTAC(userAlias, sessionID, appId);
|
|
148 |
return upc.GenerateTAC(userAlias, sessionID, appId); |
|
150 | 149 |
} |
151 | 150 |
|
152 | 151 |
public String wsGenerateTACwithSessionIDNonce(String userAlias, String sessionID, String nonce, int appId) { |
153 | 152 |
|
154 |
return upcV2.GenerateTAC(userAlias, sessionID, nonce, appId);
|
|
153 |
return upc.GenerateTAC(userAlias, sessionID, nonce, appId); |
|
155 | 154 |
} |
156 | 155 |
|
157 | 156 |
public int wsVerifyTAC(String userAlias, String inTac, int appId) { |
158 | 157 |
|
159 |
return upcV2.VerifyTAC(userAlias, inTac, appId);
|
|
158 |
return upc.VerifyTAC(userAlias, inTac, appId); |
|
160 | 159 |
} |
161 | 160 |
|
162 | 161 |
public int wsVerifyTACwithSessionID(String userAlias, String inTac, String sessionID, int appId) { |
163 | 162 |
|
164 |
return upcV2.VerifyTAC(userAlias, inTac, sessionID, appId);
|
|
163 |
return upc.VerifyTAC(userAlias, inTac, sessionID, appId); |
|
165 | 164 |
} |
166 | 165 |
|
167 | 166 |
public int wsVerifyTACwithSessionIDNonce(String userAlias, String inTac, String sessionID, String nonce, int appId) { |
168 | 167 |
|
169 |
return upcV2.VerifyTAC(userAlias, inTac, sessionID, nonce, appId);
|
|
168 |
return upc.VerifyTAC(userAlias, inTac, sessionID, nonce, appId); |
|
170 | 169 |
} |
171 | 170 |
|
172 | 171 |
public int wsResetTAC(String adminUserAlias, String adminUserPassword, String userAlias) { |
173 | 172 |
|
174 |
return upcV2.ResetTAC(adminUserAlias, adminUserPassword, userAlias);
|
|
173 |
return upc.ResetTAC(adminUserAlias, adminUserPassword, userAlias); |
|
175 | 174 |
} |
176 | 175 |
|
177 | 176 |
public int wsDisableTAC(String adminUserAlias, String adminUserPassword, String userAlias) { |
178 | 177 |
|
179 |
return upcV2.DisableTAC(adminUserAlias, adminUserPassword, userAlias);
|
|
178 |
return upc.DisableTAC(adminUserAlias, adminUserPassword, userAlias); |
|
180 | 179 |
} |
181 | 180 |
|
182 | 181 |
// ///////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
185 | 184 |
|
186 | 185 |
public int wsVerifyToken(String userAlias, String inPassword) { |
187 | 186 |
|
188 |
return upcV2.VerifyToken(userAlias, inPassword);
|
|
187 |
return upc.VerifyToken(userAlias, inPassword); |
|
189 | 188 |
} |
190 | 189 |
|
191 | 190 |
public int wsResetToken(String adminUserAlias, String adminUserPassword, String userAlias) { |
192 | 191 |
|
193 |
return upcV2.ResetToken(adminUserAlias, adminUserPassword, userAlias);
|
|
192 |
return upc.ResetToken(adminUserAlias, adminUserPassword, userAlias); |
|
194 | 193 |
} |
195 | 194 |
|
196 | 195 |
public int wsDeleteTokenFromStore(String adminUserAlias, String adminUserPassword, String serialNumber) { |
197 | 196 |
|
198 |
return upcV2.DeleteTokenFromStore(adminUserAlias, adminUserPassword, serialNumber);
|
|
197 |
return upc.DeleteTokenFromStore(adminUserAlias, adminUserPassword, serialNumber); |
|
199 | 198 |
} |
200 | 199 |
|
201 | 200 |
public int wsAssignTokenToUser(String adminUserAlias, String adminUserPassword, |
202 | 201 |
String serialNumber, String userAlias) { |
203 | 202 |
|
204 |
return upcV2.AssignTokenToUser(adminUserAlias, adminUserPassword, serialNumber, userAlias);
|
|
203 |
return upc.AssignTokenToUser(adminUserAlias, adminUserPassword, serialNumber, userAlias); |
|
205 | 204 |
} |
206 | 205 |
|
207 | 206 |
public int wsUnassignTokenFromUser(String adminUserAlias, String adminUserPassword, String userAlias) { |
208 | 207 |
|
209 |
return upcV2.UnassignTokenFromUser(adminUserAlias, adminUserPassword, userAlias);
|
|
208 |
return upc.UnassignTokenFromUser(adminUserAlias, adminUserPassword, userAlias); |
|
210 | 209 |
} |
211 | 210 |
|
212 | 211 |
public int wsDisableToken(String adminUserAlias, String adminUserPassword, String userAlias) { |
213 | 212 |
|
214 |
return upcV2.DisableToken(adminUserAlias, adminUserPassword, userAlias);
|
|
213 |
return upc.DisableToken(adminUserAlias, adminUserPassword, userAlias); |
|
215 | 214 |
} |
216 | 215 |
|
217 | 216 |
public int wsEnableToken(String adminUserAlias, String adminUserPassword, String userAlias) { |
218 | 217 |
|
219 |
return upcV2.EnableToken(adminUserAlias, adminUserPassword, userAlias);
|
|
218 |
return upc.EnableToken(adminUserAlias, adminUserPassword, userAlias); |
|
220 | 219 |
} |
221 | 220 |
|
222 | 221 |
public String wsGetTokenVendor() { |
223 | 222 |
|
224 |
return upcV2.getTokenVendor();
|
|
223 |
return upc.getTokenVendor(); |
|
225 | 224 |
} |
226 | 225 |
|
227 | 226 |
public int wsCheckPasswordReused(String userAlias, String password) { |
228 | 227 |
|
229 |
return upcV2.UA_CheckPasswordReused(userAlias, password);
|
|
228 |
return upc.UA_CheckPasswordReused(userAlias, password); |
|
230 | 229 |
} |
231 | 230 |
|
232 | 231 |
public int wsSynchronizeToken(String adminUserAlias, String adminUserPassword, |
233 | 232 |
String userAlias, String otp1, String otp2) { |
234 | 233 |
|
235 |
return upcV2.SynchronizeToken(adminUserAlias, adminUserPassword, userAlias, otp1, otp2);
|
|
234 |
return upc.SynchronizeToken(adminUserAlias, adminUserPassword, userAlias, otp1, otp2); |
|
236 | 235 |
} |
237 | 236 |
|
238 | 237 |
// ///////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
241 | 240 |
|
242 | 241 |
public String wsGenerateSecurityCode(String referenceId) { |
243 | 242 |
|
244 |
return upcV2.GenerateSecurityCode(referenceId);
|
|
243 |
return upc.GenerateSecurityCode(referenceId); |
|
245 | 244 |
} |
246 | 245 |
|
247 | 246 |
public int wsVerifySecurityCode(String referenceId, String securityCode) { |
248 | 247 |
|
249 |
return upcV2.VerifySecurityCode(referenceId, securityCode);
|
|
248 |
return upc.VerifySecurityCode(referenceId, securityCode); |
|
250 | 249 |
} |
251 |
|
|
252 |
//TODO: |
|
253 |
// 1- UA_GetUserData (things that would be in) |
|
254 |
// 2- QueryPassword (things that would be in) |
|
255 |
// 3- QueryTAC (things that would be in) |
|
256 |
// 4- DisableTAC (currently disabled inside the function) |
|
257 |
// 5- ResetTAC (need to look inside the Map loop, return before reach actual record) |
|
258 |
|
|
259 | 250 |
} |
test/java/net/penril/agro/ResetDB.java | ||
---|---|---|
1 |
package net.penril.agro; |
|
2 |
|
|
3 |
import java.io.InputStream; |
|
4 |
import java.sql.Connection; |
|
5 |
import java.sql.Statement; |
|
6 |
|
|
7 |
import my.com.upass.db.DBOperations; |
|
8 |
|
|
9 |
import org.apache.commons.io.IOUtils; |
|
10 |
|
|
11 |
public final class ResetDB { |
|
12 |
|
|
13 |
private static InputStream iStream = null; |
|
14 |
|
|
15 |
public ResetDB() { |
|
16 |
iStream = getClass().getClassLoader().getResourceAsStream("db-scripts/m2u-upass-ci-oracle.sql"); |
|
17 |
} |
|
18 |
|
|
19 |
public static void main(String[] args) throws Exception{ |
|
20 |
Connection conn = new DBOperations().getConnection(); |
|
21 |
boolean oldAutoCommit = true; |
|
22 |
try { |
|
23 |
oldAutoCommit = conn.getAutoCommit(); |
|
24 |
conn.setAutoCommit(false); |
|
25 |
Statement stmt = conn.createStatement(); |
|
26 |
new ResetDB(); |
|
27 |
String[] sqlStmts = IOUtils.toString(iStream).split(";\\s*\n"); |
|
28 |
int i = 1; |
|
29 |
for (String sqlStmt : sqlStmts) { |
|
30 |
System.out.println("Executing query #"+i); |
|
31 |
if(sqlStmt.contains("DROP")){ |
|
32 |
try { |
|
33 |
stmt.execute(sqlStmt); |
|
34 |
} catch (Exception e) { |
|
35 |
continue; |
|
36 |
} |
|
37 |
}else{ |
|
38 |
stmt.execute(sqlStmt); |
|
39 |
} |
|
40 |
i++; |
|
41 |
} |
|
42 |
|
|
43 |
conn.commit(); |
|
44 |
System.out.println("DB Reset Successfully!"); |
|
45 |
|
|
46 |
} catch (Exception e) { |
|
47 |
e.printStackTrace(); |
|
48 |
if (conn != null) |
|
49 |
conn.rollback(); |
|
50 |
|
|
51 |
} finally { |
|
52 |
if (conn != null) { |
|
53 |
conn.setAutoCommit(oldAutoCommit); |
|
54 |
conn.close(); |
|
55 |
} |
|
56 |
} |
|
57 |
} |
|
58 |
} |
test/java/net/penril/agro/UPassIT.java | ||
---|---|---|
1 |
/* |
|
2 |
* Copyright (c) 2011 Penril Datability (M) Sdn Bhd All rights reserved. |
|
3 |
* |
|
4 |
* This software is copyrighted. Under the copyright laws, this software |
|
5 |
* may not be copied, in whole or in part, without prior written consent |
|
6 |
* of Penril Datability (M) Sdn Bhd or its assignees. This software is |
|
7 |
* provided under the terms of a license between Penril Datability (M) |
|
8 |
* Sdn Bhd and the recipient, and its use is subject to the terms of that |
|
9 |
* license. |
|
10 |
*/ |
|
11 |
package net.penril.agro; |
|
12 |
|
|
13 |
import java.io.InputStream; |
|
14 |
import java.sql.Connection; |
|
15 |
import java.sql.ResultSet; |
|
16 |
import java.sql.Statement; |
|
17 |
|
|
18 |
import junit.framework.TestCase; |
|
19 |
import my.com.upass.db.DBOperations; |
|
20 |
|
|
21 |
import org.apache.commons.io.IOUtils; |
|
22 |
import org.apache.log4j.Logger; |
|
23 |
//import my.com.upass.SelfTestV2; |
|
24 |
|
|
25 |
/* |
|
26 |
* <pre> |
|
27 |
* PROGRAMMER: Hadi Ahmadi |
|
28 |
* CHANGE-NO: |
|
29 |
* TASK-NO: |
|
30 |
* DATE CREATED: Mar 6, 2012 |
|
31 |
* TAG AS: |
|
32 |
* REASON(S): |
|
33 |
* MODIFICATION: |
|
34 |
* </pre> |
|
35 |
*/ |
|
36 |
|
|
37 |
/** |
|
38 |
* An integration test (IT) case for Agrobank UPass Web Services. |
|
39 |
*/ |
|
40 |
|
|
41 |
public class UPassIT extends TestCase { |
|
42 |
|
|
43 |
private final static Logger logger = Logger.getLogger(UPassIT.class); |
|
44 |
|
|
45 |
// private static final PrintStream DEFAULT_OUTPUT = System.out; |
|
46 |
// private static final InputStream DEFAULT_INPUT = System.in; |
|
47 |
// |
|
48 |
// private final TestableOutputStream testableOutput; |
|
49 |
// private final PipedInputStream pipedInput; |
|
50 |
// private final PrintStream inputMockup; |
|
51 |
// |
|
52 |
// // |
|
53 |
// |
|
54 |
// public UPassIT() throws IOException { |
|
55 |
// testableOutput = new TestableOutputStream(DEFAULT_OUTPUT); |
|
56 |
// PipedOutputStream pipedOutput = new PipedOutputStream(); |
|
57 |
// pipedInput = new PipedInputStream(pipedOutput); |
|
58 |
// inputMockup = new InputMockUp(pipedOutput); |
|
59 |
// } |
|
60 |
|
|
61 |
@Override |
|
62 |
protected void setUp() throws Exception { |
|
63 |
super.setUp(); |
|
64 |
// System.setOut(testableOutput); |
|
65 |
// System.setIn(pipedInput); |
|
66 |
} |
|
67 |
|
|
68 |
@Override |
|
69 |
protected void tearDown() throws Exception { |
|
70 |
// System.setOut(DEFAULT_OUTPUT); |
|
71 |
// System.setIn(DEFAULT_INPUT); |
|
72 |
super.tearDown(); |
|
73 |
} |
|
74 |
|
|
75 |
public void testInitDb() throws Exception { |
|
76 |
Connection conn = new DBOperations().getConnection(); |
|
77 |
boolean oldAutoCommit = true; |
|
78 |
try { |
|
79 |
oldAutoCommit = conn.getAutoCommit(); |
|
80 |
conn.setAutoCommit(false); |
|
81 |
Statement stmt = conn.createStatement(); |
|
82 |
InputStream iStream = getClass().getClassLoader().getResourceAsStream(// |
|
83 |
"db-scripts/agro-ci-db.upass.script.w-data.sql"); |
|
84 |
String[] sqlStmts = IOUtils.toString(iStream).split("\\s*GO\\s*\n"); |
|
85 |
for (String sqlStmt : sqlStmts) { |
|
86 |
stmt.execute(sqlStmt); |
|
87 |
} |
|
88 |
ResultSet rs = stmt.executeQuery("select count(U_USER_ID) from TB_AM_USER"); |
|
89 |
int userCount = -1; |
|
90 |
if (rs.next()) |
|
91 |
userCount = rs.getInt(1); |
|
92 |
assertEquals(584, userCount); |
|
93 |
|
|
94 |
conn.commit(); |
|
95 |
|
|
96 |
} catch (Exception e) { |
|
97 |
e.printStackTrace(); |
|
98 |
if (conn != null) |
|
99 |
conn.rollback(); |
|
100 |
fail(e.toString()); |
|
101 |
|
|
102 |
} finally { |
|
103 |
if (conn != null) { |
|
104 |
conn.setAutoCommit(oldAutoCommit); |
|
105 |
conn.close(); |
|
106 |
} |
|
107 |
} |
|
108 |
} |
|
109 |
|
|
110 |
// public void testSelfTestV2() throws IOException { |
|
111 |
// Thread testThread = new Thread("SelfTestV2 Dedicated Thread") { |
|
112 |
// @Override |
|
113 |
// public void run() { |
|
114 |
// SelfTestV2.main(null); |
|
115 |
// } |
|
116 |
// }; |
|
117 |
// testThread.setDaemon(true); |
|
118 |
// testThread.start(); |
|
119 |
// |
|
120 |
// String outStr = waitForPrompt("%"); |
|
121 |
// String actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
122 |
// String expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [01] : "; |
|
123 |
// assertEquals(expectedPrompt, actualPrompt); |
|
124 |
// |
|
125 |
// testableOutput.readableStream.reset(); |
|
126 |
// inputMockup.println("84"); |
|
127 |
// outStr = waitForPrompt(":"); |
|
128 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
129 |
// expectedPrompt = "Enter User ID : "; |
|
130 |
// assertEquals(expectedPrompt, actualPrompt); |
|
131 |
// |
|
132 |
// testableOutput.readableStream.reset(); |
|
133 |
// inputMockup.println("test-user-0"); |
|
134 |
// outStr = waitForPrompt(":"); |
|
135 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
136 |
// assertTrue(outStr.contains("RC=0 RT=ERR_SUCCESS SerailNo=1497524840")); |
|
137 |
// |
|
138 |
// outStr = waitForPrompt("%"); |
|
139 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
140 |
// expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [84] : "; |
|
141 |
// assertEquals(expectedPrompt, actualPrompt); |
|
142 |
// |
|
143 |
// testableOutput.readableStream.reset(); |
|
144 |
// inputMockup.println("74"); |
|
145 |
// outStr = waitForPrompt(":"); |
|
146 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
147 |
// expectedPrompt = "Enter User ID [test-user-0] : "; |
|
148 |
// assertEquals(expectedPrompt, actualPrompt); |
|
149 |
// |
|
150 |
// testableOutput.readableStream.reset(); |
|
151 |
// inputMockup.println(); |
|
152 |
// outStr = waitForPrompt(":"); |
|
153 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
154 |
// assertTrue(outStr.contains("RC=0 RT=ERR_SUCCESS")); |
|
155 |
// |
|
156 |
// outStr = waitForPrompt("%"); |
|
157 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
158 |
// expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [74] : "; |
|
159 |
// assertEquals(expectedPrompt, actualPrompt); |
|
160 |
// |
|
161 |
// testableOutput.readableStream.reset(); |
|
162 |
// inputMockup.println("17"); |
|
163 |
// outStr = waitForPrompt(":"); |
|
164 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
165 |
// expectedPrompt = "Enter User ID [test-user-0] : "; |
|
166 |
// assertEquals(expectedPrompt, actualPrompt); |
|
167 |
// |
|
168 |
// testableOutput.readableStream.reset(); |
|
169 |
// inputMockup.println(); |
|
170 |
// outStr = waitForPrompt(":"); |
|
171 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
172 |
// assertTrue(outStr.contains("test-user-0 RC=0 RT=ERR_SUCCESS Type=2 Desc=[Test User]" // |
|
173 |
// + "\n State=0 UseCount=0" // |
|
174 |
// + "\n DateCreated")); |
|
175 |
// |
|
176 |
// outStr = waitForPrompt("%"); |
|
177 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
178 |
// expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [17] : "; |
|
179 |
// assertEquals(expectedPrompt, actualPrompt); |
|
180 |
// |
|
181 |
// testableOutput.readableStream.reset(); |
|
182 |
// inputMockup.println("64"); |
|
183 |
// outStr = waitForPrompt(":"); |
|
184 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
185 |
// expectedPrompt = "Enter User ID [test-user-0] : "; |
|
186 |
// assertEquals(expectedPrompt, actualPrompt); |
|
187 |
// |
|
188 |
// testableOutput.readableStream.reset(); |
|
189 |
// inputMockup.println(); |
|
190 |
// outStr = waitForPrompt(":"); |
|
191 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
192 |
// assertTrue(outStr.contains("test-user-0 RC=0 RT=ERR_SUCCESS State=0 ExpiryStatus=0 " |
|
193 |
// + "UseCount=0 ErrorCount=0")); |
|
194 |
// } |
|
195 |
// |
|
196 |
// private String waitForPrompt(String promptIndicator) throws IOException { |
|
197 |
// String outStr; |
|
198 |
// do { |
|
199 |
// try { |
|
200 |
// Thread.sleep(1000); |
|
201 |
// |
|
202 |
// } catch (InterruptedException e) { |
|
203 |
// e.printStackTrace(); |
|
204 |
// } |
|
205 |
// testableOutput.readableStream.flush(); |
|
206 |
// outStr = testableOutput.readableStream.toString(); |
|
207 |
// |
|
208 |
// } while (!outStr.contains(promptIndicator)); |
|
209 |
// |
|
210 |
// return outStr; |
|
211 |
// } |
|
212 |
// |
|
213 |
// private final class TestableOutputStream extends PrintStream { |
|
214 |
// |
|
215 |
// private final ByteArrayOutputStream readableStream; |
|
216 |
// |
|
217 |
// private TestableOutputStream(OutputStream out) { |
|
218 |
// this(out, new ByteArrayOutputStream(1000)); |
|
219 |
// } |
|
220 |
// |
|
221 |
// private TestableOutputStream(OutputStream out, ByteArrayOutputStream readableStream) { |
|
222 |
// super(out); |
|
223 |
// this.readableStream = readableStream; |
|
224 |
// } |
|
225 |
// |
|
226 |
// @Override |
|
227 |
// public void write(byte[] b, int off, int len) { |
|
228 |
// readableStream.write(b, off, len); |
|
229 |
// super.write(b, off, len); |
|
230 |
// } |
|
231 |
// } |
|
232 |
// |
|
233 |
// private final class InputMockUp extends PrintStream { |
|
234 |
// |
|
235 |
// private InputMockUp(OutputStream out) { |
|
236 |
// super(out); |
|
237 |
// } |
|
238 |
// |
|
239 |
// @Override |
|
240 |
// public void write(byte[] b, int off, int len) { |
|
241 |
// DEFAULT_OUTPUT.write(b, off, len); |
|
242 |
// super.write(b, off, len); |
|
243 |
// } |
|
244 |
// } |
|
245 |
} |
test/java/net/penril/upass/UPassIT.java | ||
---|---|---|
1 |
/* |
|
2 |
* Copyright (c) 2011 Penril Datability (M) Sdn Bhd All rights reserved. |
|
3 |
* |
|
4 |
* This software is copyrighted. Under the copyright laws, this software |
|
5 |
* may not be copied, in whole or in part, without prior written consent |
|
6 |
* of Penril Datability (M) Sdn Bhd or its assignees. This software is |
|
7 |
* provided under the terms of a license between Penril Datability (M) |
|
8 |
* Sdn Bhd and the recipient, and its use is subject to the terms of that |
|
9 |
* license. |
|
10 |
*/ |
|
11 |
package net.penril.upass; |
|
12 |
|
|
13 |
import java.io.InputStream; |
|
14 |
import java.sql.Connection; |
|
15 |
import java.sql.ResultSet; |
|
16 |
import java.sql.Statement; |
|
17 |
|
|
18 |
import junit.framework.TestCase; |
|
19 |
import my.com.upass.db.DBOperations; |
|
20 |
|
|
21 |
import org.apache.commons.io.IOUtils; |
|
22 |
import org.apache.log4j.Logger; |
|
23 |
//import my.com.upass.SelfTestV2; |
|
24 |
|
|
25 |
/* |
|
26 |
* <pre> |
|
27 |
* PROGRAMMER: Hadi Ahmadi |
|
28 |
* CHANGE-NO: |
|
29 |
* TASK-NO: |
|
30 |
* DATE CREATED: Mar 6, 2012 |
|
31 |
* TAG AS: |
|
32 |
* REASON(S): |
|
33 |
* MODIFICATION: |
|
34 |
* </pre> |
|
35 |
*/ |
|
36 |
|
|
37 |
/** |
|
38 |
* An integration test (IT) case for Agrobank UPass Web Services. |
|
39 |
*/ |
|
40 |
|
|
41 |
public class UPassIT extends TestCase { |
|
42 |
|
|
43 |
private final static Logger logger = Logger.getLogger(UPassIT.class); |
|
44 |
|
|
45 |
// private static final PrintStream DEFAULT_OUTPUT = System.out; |
|
46 |
// private static final InputStream DEFAULT_INPUT = System.in; |
|
47 |
// |
|
48 |
// private final TestableOutputStream testableOutput; |
|
49 |
// private final PipedInputStream pipedInput; |
|
50 |
// private final PrintStream inputMockup; |
|
51 |
// |
|
52 |
// // |
|
53 |
// |
|
54 |
// public UPassIT() throws IOException { |
|
55 |
// testableOutput = new TestableOutputStream(DEFAULT_OUTPUT); |
|
56 |
// PipedOutputStream pipedOutput = new PipedOutputStream(); |
|
57 |
// pipedInput = new PipedInputStream(pipedOutput); |
|
58 |
// inputMockup = new InputMockUp(pipedOutput); |
|
59 |
// } |
|
60 |
|
|
61 |
@Override |
|
62 |
protected void setUp() throws Exception { |
|
63 |
super.setUp(); |
|
64 |
// System.setOut(testableOutput); |
|
65 |
// System.setIn(pipedInput); |
|
66 |
} |
|
67 |
|
|
68 |
@Override |
|
69 |
protected void tearDown() throws Exception { |
|
70 |
// System.setOut(DEFAULT_OUTPUT); |
|
71 |
// System.setIn(DEFAULT_INPUT); |
|
72 |
super.tearDown(); |
|
73 |
} |
|
74 |
|
|
75 |
public void testInitDb() throws Exception { |
|
76 |
Connection conn = new DBOperations().getConnection(); |
|
77 |
boolean oldAutoCommit = true; |
|
78 |
try { |
|
79 |
oldAutoCommit = conn.getAutoCommit(); |
|
80 |
conn.setAutoCommit(false); |
|
81 |
Statement stmt = conn.createStatement(); |
|
82 |
InputStream iStream = getClass().getClassLoader().getResourceAsStream(// |
|
83 |
//"db-scripts/agro-ci-db.upass.script.w-data.sql"); |
|
84 |
"db-scripts/m2u-upass-ci-oracle.sql"); |
|
85 |
|
|
86 |
String[] sqlStmts = IOUtils.toString(iStream).split(";\\s*\n"); |
|
87 |
//String[] sqlStmts = IOUtils.toString(iStream).split("\\s*GO\\s*\n"); |
|
88 |
for (String sqlStmt : sqlStmts) { |
|
89 |
if(sqlStmt.contains("DROP")){ |
|
90 |
try { |
|
91 |
stmt.execute(sqlStmt); |
|
92 |
} catch (Exception e) { |
|
93 |
continue; |
|
94 |
} |
|
95 |
}else{ |
|
96 |
stmt.execute(sqlStmt); |
|
97 |
} |
|
98 |
} |
|
99 |
ResultSet rs = stmt.executeQuery("select count(U_USER_ID) from TB_AM_USER"); |
|
100 |
int userCount = -1; |
|
101 |
if (rs.next()) |
|
102 |
userCount = rs.getInt(1); |
|
103 |
assertEquals(584, userCount); |
|
104 |
|
|
105 |
conn.commit(); |
|
106 |
|
|
107 |
} catch (Exception e) { |
|
108 |
e.printStackTrace(); |
|
109 |
if (conn != null) |
|
110 |
conn.rollback(); |
|
111 |
fail(e.toString()); |
|
112 |
|
|
113 |
} finally { |
|
114 |
if (conn != null) { |
|
115 |
conn.setAutoCommit(oldAutoCommit); |
|
116 |
conn.close(); |
|
117 |
} |
|
118 |
} |
|
119 |
} |
|
120 |
|
|
121 |
// public void testSelfTestV2() throws IOException { |
|
122 |
// Thread testThread = new Thread("SelfTestV2 Dedicated Thread") { |
|
123 |
// @Override |
|
124 |
// public void run() { |
|
125 |
// SelfTestV2.main(null); |
|
126 |
// } |
|
127 |
// }; |
|
128 |
// testThread.setDaemon(true); |
|
129 |
// testThread.start(); |
|
130 |
// |
|
131 |
// String outStr = waitForPrompt("%"); |
|
132 |
// String actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
133 |
// String expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [01] : "; |
|
134 |
// assertEquals(expectedPrompt, actualPrompt); |
|
135 |
// |
|
136 |
// testableOutput.readableStream.reset(); |
|
137 |
// inputMockup.println("84"); |
|
138 |
// outStr = waitForPrompt(":"); |
|
139 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
140 |
// expectedPrompt = "Enter User ID : "; |
|
141 |
// assertEquals(expectedPrompt, actualPrompt); |
|
142 |
// |
|
143 |
// testableOutput.readableStream.reset(); |
|
144 |
// inputMockup.println("test-user-0"); |
|
145 |
// outStr = waitForPrompt(":"); |
|
146 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
147 |
// assertTrue(outStr.contains("RC=0 RT=ERR_SUCCESS SerailNo=1497524840")); |
|
148 |
// |
|
149 |
// outStr = waitForPrompt("%"); |
|
150 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
151 |
// expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [84] : "; |
|
152 |
// assertEquals(expectedPrompt, actualPrompt); |
|
153 |
// |
|
154 |
// testableOutput.readableStream.reset(); |
|
155 |
// inputMockup.println("74"); |
|
156 |
// outStr = waitForPrompt(":"); |
|
157 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
158 |
// expectedPrompt = "Enter User ID [test-user-0] : "; |
|
159 |
// assertEquals(expectedPrompt, actualPrompt); |
|
160 |
// |
|
161 |
// testableOutput.readableStream.reset(); |
|
162 |
// inputMockup.println(); |
|
163 |
// outStr = waitForPrompt(":"); |
|
164 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
165 |
// assertTrue(outStr.contains("RC=0 RT=ERR_SUCCESS")); |
|
166 |
// |
|
167 |
// outStr = waitForPrompt("%"); |
|
168 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
169 |
// expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [74] : "; |
|
170 |
// assertEquals(expectedPrompt, actualPrompt); |
|
171 |
// |
|
172 |
// testableOutput.readableStream.reset(); |
|
173 |
// inputMockup.println("17"); |
|
174 |
// outStr = waitForPrompt(":"); |
|
175 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
176 |
// expectedPrompt = "Enter User ID [test-user-0] : "; |
|
177 |
// assertEquals(expectedPrompt, actualPrompt); |
|
178 |
// |
|
179 |
// testableOutput.readableStream.reset(); |
|
180 |
// inputMockup.println(); |
|
181 |
// outStr = waitForPrompt(":"); |
|
182 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
183 |
// assertTrue(outStr.contains("test-user-0 RC=0 RT=ERR_SUCCESS Type=2 Desc=[Test User]" // |
|
184 |
// + "\n State=0 UseCount=0" // |
|
185 |
// + "\n DateCreated")); |
|
186 |
// |
|
187 |
// outStr = waitForPrompt("%"); |
|
188 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('%')); |
|
189 |
// expectedPrompt = "% Enter Option? | \"99\"-exit | \"e\"-ChkErr | \"s\"-SetSessID | \"m\"-Menu [17] : "; |
|
190 |
// assertEquals(expectedPrompt, actualPrompt); |
|
191 |
// |
|
192 |
// testableOutput.readableStream.reset(); |
|
193 |
// inputMockup.println("64"); |
|
194 |
// outStr = waitForPrompt(":"); |
|
195 |
// actualPrompt = outStr.substring(outStr.lastIndexOf('\n') + 1); |
|
196 |
// expectedPrompt = "Enter User ID [test-user-0] : "; |
|
197 |
// assertEquals(expectedPrompt, actualPrompt); |
|
198 |
// |
|
199 |
// testableOutput.readableStream.reset(); |
|
200 |
// inputMockup.println(); |
|
201 |
// outStr = waitForPrompt(":"); |
|
202 |
// // assertTrue(outStr.contains("RC=6 RT=ERR_USERALIAS_NOT_FOUND")); |
|
203 |
// assertTrue(outStr.contains("test-user-0 RC=0 RT=ERR_SUCCESS State=0 ExpiryStatus=0 " |
|
204 |
// + "UseCount=0 ErrorCount=0")); |
|
205 |
// } |
|
206 |
// |
|
207 |
// private String waitForPrompt(String promptIndicator) throws IOException { |
|
208 |
// String outStr; |
|
209 |
// do { |
|
210 |
// try { |
|
211 |
// Thread.sleep(1000); |
|
212 |
// |
|
213 |
// } catch (InterruptedException e) { |
|
214 |
// e.printStackTrace(); |
|
215 |
// } |
|
216 |
// testableOutput.readableStream.flush(); |
|
217 |
// outStr = testableOutput.readableStream.toString(); |
|
218 |
// |
|
219 |
// } while (!outStr.contains(promptIndicator)); |
|
220 |
// |
|
221 |
// return outStr; |
|
222 |
// } |
|
223 |
// |
|
224 |
// private final class TestableOutputStream extends PrintStream { |
|
225 |
// |
|
226 |
// private final ByteArrayOutputStream readableStream; |
|
227 |
// |
|
228 |
// private TestableOutputStream(OutputStream out) { |
|
229 |
// this(out, new ByteArrayOutputStream(1000)); |
|
230 |
// } |
|
231 |
// |
|
232 |
// private TestableOutputStream(OutputStream out, ByteArrayOutputStream readableStream) { |
|
233 |
// super(out); |
|
234 |
// this.readableStream = readableStream; |
|
235 |
// } |
|
236 |
// |
|
237 |
// @Override |
|
238 |
// public void write(byte[] b, int off, int len) { |
|
239 |
// readableStream.write(b, off, len); |
|
240 |
// super.write(b, off, len); |
|
241 |
// } |
|
242 |
// } |
|
243 |
// |
|
244 |
// private final class InputMockUp extends PrintStream { |
|
245 |
// |
|
246 |
// private InputMockUp(OutputStream out) { |
|
247 |
// super(out); |
|
248 |
// } |
|
249 |
// |
|
250 |
// @Override |
|
251 |
// public void write(byte[] b, int off, int len) { |
|
252 |
// DEFAULT_OUTPUT.write(b, off, len); |
|
253 |
// super.write(b, off, len); |
|
254 |
// } |
|
255 |
// } |
|
256 |
} |
test/jmeter/UPass-test-plan.jmx | ||
---|---|---|
36 | 36 |
</collectionProp> |
37 | 37 |
</Arguments> |
38 | 38 |
<hashTree/> |
39 |
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group #1" enabled="true">
|
|
39 |
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true"> |
|
40 | 40 |
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp> |
41 | 41 |
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> |
42 | 42 |
<boolProp name="LoopController.continue_forever">false</boolProp> |
43 | 43 |
<stringProp name="LoopController.loops">10</stringProp> |
44 | 44 |
</elementProp> |
45 |
<stringProp name="ThreadGroup.num_threads">20</stringProp>
|
|
46 |
<stringProp name="ThreadGroup.ramp_time">15</stringProp>
|
|
45 |
<stringProp name="ThreadGroup.num_threads">1</stringProp>
|
|
46 |
<stringProp name="ThreadGroup.ramp_time">1</stringProp> |
|
47 | 47 |
<longProp name="ThreadGroup.start_time">1372670250000</longProp> |
48 | 48 |
<longProp name="ThreadGroup.end_time">1372670250000</longProp> |
49 | 49 |
<boolProp name="ThreadGroup.scheduler">false</boolProp> |
... | ... | |
55 | 55 |
<stringProp name="CounterConfig.start">2</stringProp> |
56 | 56 |
<stringProp name="CounterConfig.end"></stringProp> |
57 | 57 |
<stringProp name="CounterConfig.incr">1</stringProp> |
58 |
<stringProp name="CounterConfig.name">i1</stringProp>
|
|
58 |
<stringProp name="CounterConfig.name">i</stringProp> |
|
59 | 59 |
<stringProp name="CounterConfig.format"></stringProp> |
60 | 60 |
<boolProp name="CounterConfig.per_user">false</boolProp> |
61 | 61 |
</CounterConfig> |
62 | 62 |
<hashTree/> |
63 |
<SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="SOAP Request - wsUA_AddUser" enabled="true">
|
|
63 |
<SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="SOAP/XML-RPC Request" enabled="true">
|
|
64 | 64 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"> |
65 | 65 |
<collectionProp name="Arguments.arguments"/> |
66 | 66 |
</elementProp> |
67 |
<stringProp name="SoapSampler.URL_DATA">http://localhost:9090/m2u-upass-ws/services/WS_UPass</stringProp>
|
|
67 |
<stringProp name="SoapSampler.URL_DATA">http://localhost:9090/agro-upass-ws/services/WS_UPass</stringProp>
|
|
68 | 68 |
<stringProp name="HTTPSamper.xml_data"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:upas="http://upass.ws.my"> |
69 | 69 |
<soapenv:Header/> |
70 | 70 |
<soapenv:Body> |
71 | 71 |
<upas:wsUA_AddUser> |
72 | 72 |
<upas:adminUserAlias>${invokerUsername}</upas:adminUserAlias> |
73 | 73 |
<upas:adminUserPassword>${invokerPassword}</upas:adminUserPassword> |
74 |
<upas:userAlias>test-user-${i1}</upas:userAlias>
|
|
75 |
<upas:userDesc>Test User ${i1}</upas:userDesc>
|
|
74 |
<upas:userAlias>test-user-${i}</upas:userAlias> |
|
75 |
<upas:userDesc>Test User ${i}</upas:userDesc> |
|
76 | 76 |
<upas:userPassword>Passw0rd</upas:userPassword> |
77 | 77 |
<upas:appId>2</upas:appId> |
78 | 78 |
</upas:wsUA_AddUser> |
... | ... | |
129 | 129 |
<encoding>false</encoding> |
130 | 130 |
<assertions>true</assertions> |
131 | 131 |
<subresults>true</subresults> |
132 |
<responseData>true</responseData>
|
|
133 |
<samplerData>true</samplerData>
|
|
134 |
<xml>true</xml>
|
|
132 |
<responseData>false</responseData>
|
|
133 |
<samplerData>false</samplerData>
|
|
134 |
<xml>false</xml>
|
|
135 | 135 |
<fieldNames>false</fieldNames> |
136 |
<responseHeaders>true</responseHeaders>
|
|
137 |
<requestHeaders>true</requestHeaders>
|
|
136 |
<responseHeaders>false</responseHeaders>
|
|
137 |
<requestHeaders>false</requestHeaders>
|
|
138 | 138 |
<responseDataOnError>false</responseDataOnError> |
139 |
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
|
|
139 |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
|
140 | 140 |
<assertionsResultsToSave>0</assertionsResultsToSave> |
141 | 141 |
<bytes>true</bytes> |
142 |
<threadCounts>true</threadCounts> |
|
143 | 142 |
</value> |
144 | 143 |
</objProp> |
145 | 144 |
<stringProp name="filename"></stringProp> |
... | ... | |
177 | 176 |
<stringProp name="filename"></stringProp> |
178 | 177 |
</ResultCollector> |
179 | 178 |
<hashTree/> |
180 |
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> |
|
181 |
<boolProp name="ResultCollector.error_logging">false</boolProp> |
|
182 |
<objProp> |
|
183 |
<name>saveConfig</name> |
|
184 |
<value class="SampleSaveConfiguration"> |
|
185 |
<time>true</time> |
|
186 |
<latency>true</latency> |
|
187 |
<timestamp>true</timestamp> |
|
188 |
<success>true</success> |
|
189 |
<label>true</label> |
|
190 |
<code>true</code> |
|
191 |
<message>true</message> |
|
192 |
<threadName>true</threadName> |
|
193 |
<dataType>true</dataType> |
|
194 |
<encoding>false</encoding> |
|
195 |
<assertions>true</assertions> |
|
196 |
<subresults>true</subresults> |
|
197 |
<responseData>false</responseData> |
|
198 |
<samplerData>false</samplerData> |
|
199 |
<xml>false</xml> |
|
200 |
<fieldNames>false</fieldNames> |
|
201 |
<responseHeaders>false</responseHeaders> |
|
202 |
<requestHeaders>false</requestHeaders> |
|
203 |
<responseDataOnError>false</responseDataOnError> |
|
204 |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> |
|
205 |
<assertionsResultsToSave>0</assertionsResultsToSave> |
|
206 |
<bytes>true</bytes> |
|
207 |
</value> |
|
208 |
</objProp> |
|
209 |
<stringProp name="filename"></stringProp> |
|
210 |
</ResultCollector> |
|
211 |
<hashTree/> |
|
212 |
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true"> |
|
213 |
<boolProp name="ResultCollector.error_logging">false</boolProp> |
|
214 |
<objProp> |
|
215 |
<name>saveConfig</name> |
|
216 |
<value class="SampleSaveConfiguration"> |
|
217 |
<time>true</time> |
|
218 |
<latency>true</latency> |
|
219 |
<timestamp>true</timestamp> |
|
220 |
<success>true</success> |
|
221 |
<label>true</label> |
|
222 |
<code>true</code> |
|
223 |
<message>true</message> |
|
224 |
<threadName>true</threadName> |
|
225 |
<dataType>true</dataType> |
|
226 |
<encoding>false</encoding> |
|
227 |
<assertions>true</assertions> |
|
228 |
<subresults>true</subresults> |
|
229 |
<responseData>false</responseData> |
|
230 |
<samplerData>false</samplerData> |
|
231 |
<xml>false</xml> |
|
232 |
<fieldNames>false</fieldNames> |
|
233 |
<responseHeaders>false</responseHeaders> |
|
234 |
<requestHeaders>false</requestHeaders> |
|
235 |
<responseDataOnError>false</responseDataOnError> |
|
236 |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> |
|
237 |
<assertionsResultsToSave>0</assertionsResultsToSave> |
|
238 |
<bytes>true</bytes> |
|
239 |
</value> |
|
240 |
</objProp> |
|
241 |
<stringProp name="filename"></stringProp> |
|
242 |
</ResultCollector> |
|
243 |
<hashTree/> |
|
244 |
<ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Responses to a file" enabled="true"> |
|
245 |
<stringProp name="FileSaver.filename">target/jmeter/responses/add/</stringProp> |
|
246 |
<boolProp name="FileSaver.errorsonly">false</boolProp> |
|
247 |
<boolProp name="FileSaver.skipautonumber">false</boolProp> |
|
248 |
<boolProp name="FileSaver.skipsuffix">false</boolProp> |
|
249 |
<boolProp name="FileSaver.successonly">false</boolProp> |
|
250 |
<boolProp name="FileSaver.addTimstamp">true</boolProp> |
|
251 |
<stringProp name="FileSaver.numberPadLen">4</stringProp> |
|
252 |
</ResultSaver> |
|
253 |
<hashTree/> |
|
254 | 179 |
</hashTree> |
255 |
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group #1" enabled="true">
|
|
180 |
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> |
|
256 | 181 |
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp> |
257 | 182 |
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> |
258 | 183 |
<boolProp name="LoopController.continue_forever">false</boolProp> |
259 |
<stringProp name="LoopController.loops">10</stringProp>
|
|
184 |
<stringProp name="LoopController.loops">6</stringProp>
|
|
260 | 185 |
</elementProp> |
261 |
<stringProp name="ThreadGroup.num_threads">20</stringProp>
|
|
186 |
<stringProp name="ThreadGroup.num_threads">300</stringProp>
|
|
262 | 187 |
<stringProp name="ThreadGroup.ramp_time">10</stringProp> |
263 | 188 |
<longProp name="ThreadGroup.start_time">1372670918000</longProp> |
264 | 189 |
<longProp name="ThreadGroup.end_time">1372670918000</longProp> |
... | ... | |
269 | 194 |
<hashTree> |
270 | 195 |
<CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true"> |
271 | 196 |
<stringProp name="CounterConfig.start">2</stringProp> |
272 |
<stringProp name="CounterConfig.end">200</stringProp>
|
|
197 |
<stringProp name="CounterConfig.end">10</stringProp>
|
|
273 | 198 |
<stringProp name="CounterConfig.incr">1</stringProp> |
274 |
<stringProp name="CounterConfig.name">j1</stringProp>
|
|
199 |
<stringProp name="CounterConfig.name">j</stringProp> |
|
275 | 200 |
<stringProp name="CounterConfig.format"></stringProp> |
276 | 201 |
<boolProp name="CounterConfig.per_user">false</boolProp> |
277 | 202 |
</CounterConfig> |
278 | 203 |
<hashTree/> |
279 |
<SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="SOAP Request - wsSP_VerifyStaticPassword" enabled="true">
|
|
204 |
<SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="SOAP/XML-RPC Request" enabled="true">
|
|
280 | 205 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"> |
281 | 206 |
<collectionProp name="Arguments.arguments"/> |
282 | 207 |
</elementProp> |
283 |
<stringProp name="SoapSampler.URL_DATA">http://localhost:9090/m2u-upass-ws/services/WS_UPass</stringProp>
|
|
208 |
<stringProp name="SoapSampler.URL_DATA">http://localhost:9090/agro-upass-ws/services/WS_UPass</stringProp>
|
|
284 | 209 |
<stringProp name="HTTPSamper.xml_data"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:upas="http://upass.ws.my"> |
285 | 210 |
<soapenv:Header/> |
286 | 211 |
<soapenv:Body> |
287 | 212 |
<upas:wsSP_VerifyStaticPassword> |
288 |
<upas:userAlias>test-user-${j1}</upas:userAlias>
|
|
213 |
<upas:userAlias>test-user-${j}</upas:userAlias> |
|
289 | 214 |
<upas:password>Passw0rd</upas:password> |
290 | 215 |
</upas:wsSP_VerifyStaticPassword> |
291 | 216 |
</soapenv:Body> |
... | ... | |
333 | 258 |
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> |
334 | 259 |
<assertionsResultsToSave>0</assertionsResultsToSave> |
335 | 260 |
<bytes>true</bytes> |
336 |
<threadCounts>true</threadCounts> |
|
337 | 261 |
</value> |
338 | 262 |
</objProp> |
339 | 263 |
<stringProp name="filename"></stringProp> |
... | ... | |
436 | 360 |
</ResultCollector> |
437 | 361 |
<hashTree/> |
438 | 362 |
<ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Responses to a file" enabled="true"> |
439 |
<stringProp name="FileSaver.filename">target/jmeter/responses/auth/</stringProp> |
|
440 |
<boolProp name="FileSaver.errorsonly">false</boolProp> |
|
441 |
<boolProp name="FileSaver.skipautonumber">false</boolProp> |
|
442 |
<boolProp name="FileSaver.skipsuffix">false</boolProp> |
|
443 |
<boolProp name="FileSaver.successonly">false</boolProp> |
|
444 |
<boolProp name="FileSaver.addTimstamp">true</boolProp> |
|
445 |
<stringProp name="FileSaver.numberPadLen">4</stringProp> |
|
446 |
</ResultSaver> |
|
447 |
<hashTree/> |
|
448 |
</hashTree> |
|
449 |
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group #2" enabled="true"> |
|
450 |
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp> |
|
451 |
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> |
|
452 |
<boolProp name="LoopController.continue_forever">false</boolProp> |
|
453 |
<stringProp name="LoopController.loops">30</stringProp> |
|
454 |
</elementProp> |
|
455 |
<stringProp name="ThreadGroup.num_threads">200</stringProp> |
|
456 |
<stringProp name="ThreadGroup.ramp_time">30</stringProp> |
|
457 |
<longProp name="ThreadGroup.start_time">1372670250000</longProp> |
|
458 |
<longProp name="ThreadGroup.end_time">1372670250000</longProp> |
|
459 |
<boolProp name="ThreadGroup.scheduler">false</boolProp> |
|
460 |
<stringProp name="ThreadGroup.duration"></stringProp> |
|
461 |
<stringProp name="ThreadGroup.delay"></stringProp> |
|
462 |
</SetupThreadGroup> |
|
463 |
<hashTree> |
|
464 |
<CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter (setUp)" enabled="true"> |
|
465 |
<stringProp name="CounterConfig.start">201</stringProp> |
|
466 |
<stringProp name="CounterConfig.end">6000</stringProp> |
|
467 |
<stringProp name="CounterConfig.incr">1</stringProp> |
|
468 |
<stringProp name="CounterConfig.name">i2</stringProp> |
|
469 |
<stringProp name="CounterConfig.format"></stringProp> |
|
470 |
<boolProp name="CounterConfig.per_user">false</boolProp> |
|
471 |
</CounterConfig> |
|
472 |
<hashTree/> |
|
473 |
<SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="SOAP Request - wsUA_AddUser" enabled="true"> |
|
474 |
<elementProp name="HTTPsampler.Arguments" elementType="Arguments"> |
|
475 |
<collectionProp name="Arguments.arguments"/> |
|
476 |
</elementProp> |
|
477 |
<stringProp name="SoapSampler.URL_DATA">http://localhost:9090/m2u-upass-ws/services/WS_UPass</stringProp> |
|
478 |
<stringProp name="HTTPSamper.xml_data"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:upas="http://upass.ws.my"> |
|
479 |
<soapenv:Header/> |
|
480 |
<soapenv:Body> |
|
481 |
<upas:wsUA_AddUser> |
|
482 |
<upas:adminUserAlias>${invokerUsername}</upas:adminUserAlias> |
|
483 |
<upas:adminUserPassword>${invokerPassword}</upas:adminUserPassword> |
|
484 |
<upas:userAlias>test-user-${i2}</upas:userAlias> |
|
485 |
<upas:userDesc>Test User ${i2}</upas:userDesc> |
|
486 |
<upas:userPassword>Passw0rd</upas:userPassword> |
|
487 |
<upas:appId>2</upas:appId> |
|
488 |
</upas:wsUA_AddUser> |
|
489 |
</soapenv:Body> |
|
490 |
</soapenv:Envelope></stringProp> |
|
491 |
<stringProp name="SoapSampler.xml_data_file"></stringProp> |
|
492 |
<stringProp name="SoapSampler.SOAP_ACTION"></stringProp> |
|
493 |
<stringProp name="SoapSampler.SEND_SOAP_ACTION">true</stringProp> |
|
494 |
<boolProp name="HTTPSampler.use_keepalive">false</boolProp> |
|
495 |
</SoapSampler> |
|
496 |
<hashTree> |
|
497 |
<XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor" enabled="false"> |
|
498 |
<stringProp name="XPathExtractor.default"></stringProp> |
|
499 |
<stringProp name="XPathExtractor.refname">retVal</stringProp> |
|
500 |
<stringProp name="XPathExtractor.xpathQuery">/Envelope/Body/wsUA_AddUserResponse/wsUA_AddUserReturn</stringProp> |
|
501 |
<boolProp name="XPathExtractor.validate">true</boolProp> |
|
502 |
<boolProp name="XPathExtractor.tolerant">false</boolProp> |
|
503 |
<boolProp name="XPathExtractor.namespace">false</boolProp> |
|
504 |
</XPathExtractor> |
|
505 |
<hashTree/> |
|
506 |
<BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="false"> |
|
507 |
<stringProp name="BeanShellAssertion.query">retStr = vars.get("retVal"); |
|
508 |
retInt = Integer.valueOf( retStr ); |
|
509 |
Failure = (retInt != 0)</stringProp> |
|
510 |
<stringProp name="BeanShellAssertion.filename"></stringProp> |
|
511 |
<stringProp name="BeanShellAssertion.parameters"></stringProp> |
|
512 |
<boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp> |
|
513 |
</BeanShellAssertion> |
|
514 |
<hashTree/> |
|
515 |
<XPathAssertion guiclass="XPathAssertionGui" testclass="XPathAssertion" testname="XPath Assertion" enabled="true"> |
|
516 |
<boolProp name="XPath.negate">false</boolProp> |
|
517 |
<stringProp name="XPath.xpath">/Envelope/Body/wsUA_AddUserResponse/wsUA_AddUserReturn = 0</stringProp> |
|
518 |
<boolProp name="XPath.validate">false</boolProp> |
|
519 |
<boolProp name="XPath.whitespace">false</boolProp> |
|
520 |
<boolProp name="XPath.tolerant">false</boolProp> |
|
521 |
<boolProp name="XPath.namespace">false</boolProp> |
|
522 |
</XPathAssertion> |
|
523 |
<hashTree/> |
|
524 |
</hashTree> |
|
525 |
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree (setUp)" enabled="true"> |
|
526 |
<boolProp name="ResultCollector.error_logging">false</boolProp> |
|
527 |
<objProp> |
|
528 |
<name>saveConfig</name> |
|
529 |
<value class="SampleSaveConfiguration"> |
|
530 |
<time>true</time> |
|
531 |
<latency>true</latency> |
|
532 |
<timestamp>true</timestamp> |
|
533 |
<success>true</success> |
|
534 |
<label>true</label> |
|
535 |
<code>true</code> |
|
536 |
<message>true</message> |
|
537 |
<threadName>true</threadName> |
|
538 |
<dataType>true</dataType> |
|
539 |
<encoding>false</encoding> |
|
540 |
<assertions>true</assertions> |
|
541 |
<subresults>true</subresults> |
|
542 |
<responseData>true</responseData> |
|
543 |
<samplerData>true</samplerData> |
|
544 |
<xml>true</xml> |
|
545 |
<fieldNames>false</fieldNames> |
|
546 |
<responseHeaders>true</responseHeaders> |
|
547 |
<requestHeaders>true</requestHeaders> |
|
548 |
<responseDataOnError>false</responseDataOnError> |
|
549 |
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> |
|
550 |
<assertionsResultsToSave>0</assertionsResultsToSave> |
|
551 |
<bytes>true</bytes> |
|
552 |
<threadCounts>true</threadCounts> |
|
553 |
</value> |
|
554 |
</objProp> |
|
555 |
<stringProp name="filename"></stringProp> |
|
556 |
</ResultCollector> |
|
557 |
<hashTree/> |
|
558 |
<ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table (setUp)" enabled="true"> |
|
559 |
<boolProp name="ResultCollector.error_logging">false</boolProp> |
|
560 |
<objProp> |
|
561 |
<name>saveConfig</name> |
|
562 |
<value class="SampleSaveConfiguration"> |
|
563 |
<time>true</time> |
|
564 |
<latency>true</latency> |
|
565 |
<timestamp>true</timestamp> |
|
566 |
<success>true</success> |
|
567 |
<label>true</label> |
|
568 |
<code>true</code> |
|
569 |
<message>true</message> |
|
570 |
<threadName>true</threadName> |
|
571 |
<dataType>true</dataType> |
|
572 |
<encoding>false</encoding> |
|
573 |
<assertions>true</assertions> |
|
574 |
<subresults>true</subresults> |
|
575 |
<responseData>false</responseData> |
|
576 |
<samplerData>false</samplerData> |
|
577 |
<xml>false</xml> |
|
578 |
<fieldNames>false</fieldNames> |
|
579 |
<responseHeaders>false</responseHeaders> |
|
580 |
<requestHeaders>false</requestHeaders> |
|
581 |
<responseDataOnError>false</responseDataOnError> |
|
582 |
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> |
|
583 |
<assertionsResultsToSave>0</assertionsResultsToSave> |
|
584 |
<bytes>true</bytes> |
|
585 |
</value> |
|
586 |
</objProp> |
|
587 |
<stringProp name="filename"></stringProp> |
|
588 |
</ResultCollector> |
Also available in: Unified diff