001_顺德WMS@入库之全流程.jmx 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.3">
  3. <hashTree>
  4. <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="顺德WMS@入库之全流程" enabled="true">
  5. <stringProp name="TestPlan.comments"></stringProp>
  6. <boolProp name="TestPlan.functional_mode">false</boolProp>
  7. <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
  8. <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
  9. <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  10. <collectionProp name="Arguments.arguments"/>
  11. </elementProp>
  12. <stringProp name="TestPlan.user_define_classpath"></stringProp>
  13. </TestPlan>
  14. <hashTree>
  15. <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="环境变量-本地环境" enabled="false">
  16. <collectionProp name="Arguments.arguments">
  17. <elementProp name="server" elementType="Argument">
  18. <stringProp name="Argument.name">server</stringProp>
  19. <stringProp name="Argument.value">127.0.0.1</stringProp>
  20. <stringProp name="Argument.metadata">=</stringProp>
  21. </elementProp>
  22. <elementProp name="port" elementType="Argument">
  23. <stringProp name="Argument.name">port</stringProp>
  24. <stringProp name="Argument.value">8085</stringProp>
  25. <stringProp name="Argument.metadata">=</stringProp>
  26. </elementProp>
  27. <elementProp name="wh_id" elementType="Argument">
  28. <stringProp name="Argument.name">wh_id</stringProp>
  29. <stringProp name="Argument.value">424279481503974579</stringProp>
  30. <stringProp name="Argument.metadata">=</stringProp>
  31. </elementProp>
  32. <elementProp name="system_key" elementType="Argument">
  33. <stringProp name="Argument.name">system_key</stringProp>
  34. <stringProp name="Argument.value">eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJ5dmFuLXNlY3VyaXR5IiwiX191aWQiOiIzMTUwNzI4MTM1MDc1NDMwNDUiLCJhdWQiOiJ5dmFuLSoiLCJzdWIiOiJhZG1pbiIsImxvZ2luX2lkIjozMTYzNTczNDM4MTE5OTM2MDksImV4cCI6MTcyNTczODMwMCwiaWF0IjoxNzIzMTc0NjE0LCJqdGkiOiI0MjUwNjkzNDczNTU0OTgwMDkifQ.YrDCJklGXn7-jssCTWyIASDWjQ_TiYKLHGkLh1pb3F20GhOzTP1uz9hEul9LhdArk6Z6QtJB8c-ZcbtznbjxMfMWQvpl3wFwNiXNVozGxE6guwBwFj3cDyUdkbvutK6piLQGqaR8S8cE9rA_2D2xwA-kKh79NbGkNh8sBzdqFWmhnYqZxZTYD-I-GTSVYRw_LW_--Se-jBVjDX5U63wx4gaZQBvG-3XQiYGAWqZ63ywZ62n2gXc4HvZavsYJnq9WhlVPIU1YvsRwd0yaSDTkEBxVjBTLaUmMoTMlMtvvAiuywFU8U66VRThsXW3TIRSvPYfLqTgcsWxK4UDJy6OFOg</stringProp>
  35. <stringProp name="Argument.metadata">=</stringProp>
  36. </elementProp>
  37. <elementProp name="poLineNum" elementType="Argument">
  38. <stringProp name="Argument.name">poLineNum</stringProp>
  39. <stringProp name="Argument.value">5</stringProp>
  40. <stringProp name="Argument.metadata">=</stringProp>
  41. </elementProp>
  42. </collectionProp>
  43. </Arguments>
  44. <hashTree/>
  45. <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="环境变量-SD测试" enabled="true">
  46. <collectionProp name="Arguments.arguments">
  47. <elementProp name="server" elementType="Argument">
  48. <stringProp name="Argument.name">server</stringProp>
  49. <stringProp name="Argument.value">wms-system.test.sdl.com</stringProp>
  50. <stringProp name="Argument.metadata">=</stringProp>
  51. </elementProp>
  52. <elementProp name="port" elementType="Argument">
  53. <stringProp name="Argument.name">port</stringProp>
  54. <stringProp name="Argument.value">8000</stringProp>
  55. <stringProp name="Argument.metadata">=</stringProp>
  56. </elementProp>
  57. <elementProp name="wh_id" elementType="Argument">
  58. <stringProp name="Argument.name">wh_id</stringProp>
  59. <stringProp name="Argument.value">1000001</stringProp>
  60. <stringProp name="Argument.metadata">=</stringProp>
  61. </elementProp>
  62. <elementProp name="system_key" elementType="Argument">
  63. <stringProp name="Argument.name">system_key</stringProp>
  64. <stringProp name="Argument.value">eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJ5dmFuLXNlY3VyaXR5IiwiX191aWQiOiIzMTUwNzI4MTM1MDc1NDMwNDUiLCJhdWQiOiJ5dmFuLSoiLCJzdWIiOiJhZG1pbiIsImxvZ2luX2lkIjozMTYzNTczNDM4MTE5OTM2MDksImV4cCI6MTcyNjg2MTUwMCwiaWF0IjoxNzI0MzEyMDgxLCJqdGkiOiI0MzQ2MTExMDkwMTkyNjA0NzgifQ.Vor5psK98IdvpxcN1LNV2L0bXNnLHx6b5R4cKS2VwbywoWyfaUtHCXh1xv3qeCphy5GuSeXrvepTsQdXkt81l7Gx_4Lg-qUXs32mYhaclpFlvjhprcAx6cKm8_PgtSNWSEiWZ5gKP5dH3GWlaSxNQPviIY1SXIGdChUGkhwlFN-EXBBQTtJbMYHxhXjJwd3HCKfyH6qP1RYK4MN_lFd_mQRWnS3lCFrU4pd1aWaeqCowy8PNP4alAnzYQRbVL9yL8gItp2i6hIJggtDG83T5tBBE6euamN3jvXOM8O0tflxDL5oRVCX2I59Qo_F-LkrWsmm5pqBlegaWdlG8Ue1aEg</stringProp>
  65. <stringProp name="Argument.metadata">=</stringProp>
  66. </elementProp>
  67. <elementProp name="poLineNum" elementType="Argument">
  68. <stringProp name="Argument.name">poLineNum</stringProp>
  69. <stringProp name="Argument.value">100</stringProp>
  70. <stringProp name="Argument.metadata">=</stringProp>
  71. </elementProp>
  72. <elementProp name="sequence_start_value" elementType="Argument">
  73. <stringProp name="Argument.name">sequence_start_value</stringProp>
  74. <stringProp name="Argument.value">4000</stringProp>
  75. <stringProp name="Argument.metadata">=</stringProp>
  76. </elementProp>
  77. </collectionProp>
  78. </Arguments>
  79. <hashTree/>
  80. <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="环境变量-华为云" enabled="false">
  81. <collectionProp name="Arguments.arguments">
  82. <elementProp name="server" elementType="Argument">
  83. <stringProp name="Argument.name">server</stringProp>
  84. <stringProp name="Argument.value">122.9.140.63</stringProp>
  85. <stringProp name="Argument.metadata">=</stringProp>
  86. </elementProp>
  87. <elementProp name="port" elementType="Argument">
  88. <stringProp name="Argument.name">port</stringProp>
  89. <stringProp name="Argument.value">8006</stringProp>
  90. <stringProp name="Argument.metadata">=</stringProp>
  91. </elementProp>
  92. <elementProp name="wh_id" elementType="Argument">
  93. <stringProp name="Argument.name">wh_id</stringProp>
  94. <stringProp name="Argument.value">1000001</stringProp>
  95. <stringProp name="Argument.metadata">=</stringProp>
  96. </elementProp>
  97. <elementProp name="system_key" elementType="Argument">
  98. <stringProp name="Argument.name">system_key</stringProp>
  99. <stringProp name="Argument.value">eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJ5dmFuLXNlY3VyaXR5IiwiX191aWQiOiIzMTUwNzI4MTM1MDc1NDMwNDUiLCJhdWQiOiJ5dmFuLSoiLCJzdWIiOiJhZG1pbiIsImxvZ2luX2lkIjozMTYzNTczNDM4MTE5OTM2MDksImV4cCI6MTcyNTk5NzUwMCwiaWF0IjoxNzIzNDQ3NTA5LCJqdGkiOiI0MjczNTg1NTc3MjY4NDAzNjQifQ.g5JO8RAqDcipomhOs9pmpfuz-b_nznlssihFY0pCpSPBpkd3L6dr6_FAX8g-oD_EpBoK3Ng_Lh9eqI06Wg2LftxzPn0AagQHmKVtUlY_vDJOQweAmoZRGSFL57xV-UVGI2pgY47nWZVbWS0iFu8s5LgzbvfZABNKfiYYR8VlfN7xL63jfxyjX1uCKxLvGWtzpxDnKWtxJshpBazxyR1qgUci1s2Q_mD9Ljxc2hiwopaizhCuIVytBjAvwS6nYKGqGbyKEdnFt5SFu5EctYkwrEjuk8wtAlGgAiUoT1wb2_JwiS9d_zh24CFYchjiAWrKgmHRSeWekRlszJV_se-Mtw</stringProp>
  100. <stringProp name="Argument.metadata">=</stringProp>
  101. </elementProp>
  102. <elementProp name="poLineNum" elementType="Argument">
  103. <stringProp name="Argument.name">poLineNum</stringProp>
  104. <stringProp name="Argument.value">2</stringProp>
  105. <stringProp name="Argument.metadata">=</stringProp>
  106. </elementProp>
  107. <elementProp name="sequence_start_value" elementType="Argument">
  108. <stringProp name="Argument.name">sequence_start_value</stringProp>
  109. <stringProp name="Argument.value">103</stringProp>
  110. <stringProp name="Argument.metadata">=</stringProp>
  111. </elementProp>
  112. </collectionProp>
  113. </Arguments>
  114. <hashTree/>
  115. <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="入库之全流程" enabled="true">
  116. <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  117. <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  118. <boolProp name="LoopController.continue_forever">false</boolProp>
  119. <stringProp name="LoopController.loops">10</stringProp>
  120. </elementProp>
  121. <stringProp name="ThreadGroup.num_threads">15</stringProp>
  122. <stringProp name="ThreadGroup.ramp_time">1</stringProp>
  123. <boolProp name="ThreadGroup.scheduler">false</boolProp>
  124. <stringProp name="ThreadGroup.duration">300</stringProp>
  125. <stringProp name="ThreadGroup.delay">0</stringProp>
  126. <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
  127. </ThreadGroup>
  128. <hashTree>
  129. <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  130. <boolProp name="ResultCollector.error_logging">false</boolProp>
  131. <objProp>
  132. <name>saveConfig</name>
  133. <value class="SampleSaveConfiguration">
  134. <time>true</time>
  135. <latency>true</latency>
  136. <timestamp>true</timestamp>
  137. <success>true</success>
  138. <label>true</label>
  139. <code>true</code>
  140. <message>true</message>
  141. <threadName>true</threadName>
  142. <dataType>true</dataType>
  143. <encoding>false</encoding>
  144. <assertions>true</assertions>
  145. <subresults>true</subresults>
  146. <responseData>false</responseData>
  147. <samplerData>false</samplerData>
  148. <xml>false</xml>
  149. <fieldNames>true</fieldNames>
  150. <responseHeaders>false</responseHeaders>
  151. <requestHeaders>false</requestHeaders>
  152. <responseDataOnError>false</responseDataOnError>
  153. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  154. <assertionsResultsToSave>0</assertionsResultsToSave>
  155. <bytes>true</bytes>
  156. <sentBytes>true</sentBytes>
  157. <url>true</url>
  158. <threadCounts>true</threadCounts>
  159. <idleTime>true</idleTime>
  160. <connectTime>true</connectTime>
  161. </value>
  162. </objProp>
  163. <stringProp name="filename"></stringProp>
  164. </ResultCollector>
  165. <hashTree/>
  166. <ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
  167. <boolProp name="ResultCollector.error_logging">false</boolProp>
  168. <objProp>
  169. <name>saveConfig</name>
  170. <value class="SampleSaveConfiguration">
  171. <time>true</time>
  172. <latency>true</latency>
  173. <timestamp>true</timestamp>
  174. <success>true</success>
  175. <label>true</label>
  176. <code>true</code>
  177. <message>true</message>
  178. <threadName>true</threadName>
  179. <dataType>true</dataType>
  180. <encoding>false</encoding>
  181. <assertions>true</assertions>
  182. <subresults>true</subresults>
  183. <responseData>false</responseData>
  184. <samplerData>false</samplerData>
  185. <xml>false</xml>
  186. <fieldNames>true</fieldNames>
  187. <responseHeaders>false</responseHeaders>
  188. <requestHeaders>false</requestHeaders>
  189. <responseDataOnError>false</responseDataOnError>
  190. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  191. <assertionsResultsToSave>0</assertionsResultsToSave>
  192. <bytes>true</bytes>
  193. <sentBytes>true</sentBytes>
  194. <url>true</url>
  195. <threadCounts>true</threadCounts>
  196. <idleTime>true</idleTime>
  197. <connectTime>true</connectTime>
  198. </value>
  199. </objProp>
  200. <stringProp name="filename"></stringProp>
  201. </ResultCollector>
  202. <hashTree/>
  203. <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="true">
  204. <boolProp name="ResultCollector.error_logging">false</boolProp>
  205. <objProp>
  206. <name>saveConfig</name>
  207. <value class="SampleSaveConfiguration">
  208. <time>true</time>
  209. <latency>true</latency>
  210. <timestamp>true</timestamp>
  211. <success>true</success>
  212. <label>true</label>
  213. <code>true</code>
  214. <message>true</message>
  215. <threadName>true</threadName>
  216. <dataType>true</dataType>
  217. <encoding>false</encoding>
  218. <assertions>true</assertions>
  219. <subresults>true</subresults>
  220. <responseData>false</responseData>
  221. <samplerData>false</samplerData>
  222. <xml>false</xml>
  223. <fieldNames>true</fieldNames>
  224. <responseHeaders>false</responseHeaders>
  225. <requestHeaders>false</requestHeaders>
  226. <responseDataOnError>false</responseDataOnError>
  227. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  228. <assertionsResultsToSave>0</assertionsResultsToSave>
  229. <bytes>true</bytes>
  230. <sentBytes>true</sentBytes>
  231. <url>true</url>
  232. <threadCounts>true</threadCounts>
  233. <idleTime>true</idleTime>
  234. <connectTime>true</connectTime>
  235. </value>
  236. </objProp>
  237. <stringProp name="filename"></stringProp>
  238. </ResultCollector>
  239. <hashTree/>
  240. <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
  241. <boolProp name="ResultCollector.error_logging">false</boolProp>
  242. <objProp>
  243. <name>saveConfig</name>
  244. <value class="SampleSaveConfiguration">
  245. <time>true</time>
  246. <latency>true</latency>
  247. <timestamp>true</timestamp>
  248. <success>true</success>
  249. <label>true</label>
  250. <code>true</code>
  251. <message>true</message>
  252. <threadName>true</threadName>
  253. <dataType>true</dataType>
  254. <encoding>false</encoding>
  255. <assertions>true</assertions>
  256. <subresults>true</subresults>
  257. <responseData>false</responseData>
  258. <samplerData>false</samplerData>
  259. <xml>false</xml>
  260. <fieldNames>true</fieldNames>
  261. <responseHeaders>false</responseHeaders>
  262. <requestHeaders>false</requestHeaders>
  263. <responseDataOnError>false</responseDataOnError>
  264. <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
  265. <assertionsResultsToSave>0</assertionsResultsToSave>
  266. <bytes>true</bytes>
  267. <sentBytes>true</sentBytes>
  268. <url>true</url>
  269. <threadCounts>true</threadCounts>
  270. <idleTime>true</idleTime>
  271. <connectTime>true</connectTime>
  272. </value>
  273. </objProp>
  274. <stringProp name="filename"></stringProp>
  275. </ResultCollector>
  276. <hashTree/>
  277. <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
  278. <collectionProp name="HeaderManager.headers">
  279. <elementProp name="" elementType="Header">
  280. <stringProp name="Header.name">whId</stringProp>
  281. <stringProp name="Header.value">${wh_id}</stringProp>
  282. </elementProp>
  283. <elementProp name="" elementType="Header">
  284. <stringProp name="Header.name">systemkey</stringProp>
  285. <stringProp name="Header.value">${system_key}</stringProp>
  286. </elementProp>
  287. </collectionProp>
  288. </HeaderManager>
  289. <hashTree/>
  290. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="User Data Config" enabled="true">
  291. <stringProp name="filename">./1001_user_data_config.csv</stringProp>
  292. <stringProp name="fileEncoding">UTF-8</stringProp>
  293. <stringProp name="variableNames">staff_id</stringProp>
  294. <boolProp name="ignoreFirstLine">false</boolProp>
  295. <stringProp name="delimiter">,</stringProp>
  296. <boolProp name="quotedData">false</boolProp>
  297. <boolProp name="recycle">true</boolProp>
  298. <boolProp name="stopThread">false</boolProp>
  299. <stringProp name="shareMode">shareMode.group</stringProp>
  300. </CSVDataSet>
  301. <hashTree/>
  302. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Owner Data Config" enabled="true">
  303. <stringProp name="delimiter">,</stringProp>
  304. <stringProp name="fileEncoding">UTF-8</stringProp>
  305. <stringProp name="filename">./1002_owner_data_config.csv</stringProp>
  306. <boolProp name="ignoreFirstLine">false</boolProp>
  307. <boolProp name="quotedData">false</boolProp>
  308. <boolProp name="recycle">true</boolProp>
  309. <stringProp name="shareMode"></stringProp>
  310. <boolProp name="stopThread">true</boolProp>
  311. <stringProp name="variableNames">owner_id</stringProp>
  312. </CSVDataSet>
  313. <hashTree/>
  314. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Supplier Data Config" enabled="true">
  315. <stringProp name="filename">./1003_supplier_data_config.csv</stringProp>
  316. <stringProp name="fileEncoding">UTF-8</stringProp>
  317. <stringProp name="variableNames">supplier_id</stringProp>
  318. <boolProp name="ignoreFirstLine">false</boolProp>
  319. <stringProp name="delimiter">,</stringProp>
  320. <boolProp name="quotedData">false</boolProp>
  321. <boolProp name="recycle">true</boolProp>
  322. <boolProp name="stopThread">false</boolProp>
  323. <stringProp name="shareMode">shareMode.group</stringProp>
  324. </CSVDataSet>
  325. <hashTree/>
  326. <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Sequence Counter" enabled="true">
  327. <stringProp name="CounterConfig.start">${sequence_start_value}</stringProp>
  328. <stringProp name="CounterConfig.end"></stringProp>
  329. <stringProp name="CounterConfig.incr">1</stringProp>
  330. <stringProp name="CounterConfig.name">sequence</stringProp>
  331. <stringProp name="CounterConfig.format">000000</stringProp>
  332. <boolProp name="CounterConfig.per_user">false</boolProp>
  333. </CounterConfig>
  334. <hashTree/>
  335. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Init Param" enabled="true">
  336. <stringProp name="BeanShellSampler.query">com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  337. vars.put(&quot;poItemList&quot;, util.toJson(new ArrayList()));
  338. //vars.put(&quot;asn_code&quot;, &quot;ASN24080900059&quot;);</stringProp>
  339. <stringProp name="BeanShellSampler.filename"></stringProp>
  340. <stringProp name="BeanShellSampler.parameters"></stringProp>
  341. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  342. </BeanShellSampler>
  343. <hashTree/>
  344. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Po Line Loop" enabled="true">
  345. <boolProp name="LoopController.continue_forever">true</boolProp>
  346. <stringProp name="LoopController.loops">${poLineNum}</stringProp>
  347. </LoopController>
  348. <hashTree>
  349. <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Item Data Config" enabled="true">
  350. <stringProp name="delimiter">,</stringProp>
  351. <stringProp name="fileEncoding">UTF-8</stringProp>
  352. <stringProp name="filename">./1004_item_data_config.csv</stringProp>
  353. <boolProp name="ignoreFirstLine">false</boolProp>
  354. <boolProp name="quotedData">false</boolProp>
  355. <boolProp name="recycle">true</boolProp>
  356. <stringProp name="shareMode">shareMode.group</stringProp>
  357. <boolProp name="stopThread">true</boolProp>
  358. <stringProp name="variableNames">item_id,pack_id,qty</stringProp>
  359. </CSVDataSet>
  360. <hashTree/>
  361. <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Build Po Item Param" enabled="true">
  362. <stringProp name="cacheKey">true</stringProp>
  363. <stringProp name="filename"></stringProp>
  364. <stringProp name="parameters"></stringProp>
  365. <stringProp name="script">com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  366. java.time.LocalDate currentDate = java.time.LocalDate.now();
  367. java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern(&quot;yyyyMMdd&quot;);
  368. java.time.format.DateTimeFormatter formatter2 = java.time.format.DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&quot;);
  369. String lotNo = currentDate.format(formatter) + vars.get(&quot;sequence&quot;);
  370. int defaultPrice = 100;
  371. int defaultQty = vars.get(&quot;qty&quot;);
  372. String defaultManufacture = java.time.LocalDate.of(2024, 1, 1).format(formatter2);
  373. String defaultValidUntil = java.time.LocalDate.of(2024, 12, 31).format(formatter2);
  374. List poItemList = util.parseJson(vars.get(&quot;poItemList&quot;), List.class);
  375. Map poItem = new HashMap();
  376. int poLineNo = Integer.parseInt(vars.get(&quot;__jm__Po Line Loop__idx&quot;)) + 1;
  377. poItem.put(&quot;poLineNo&quot;, poLineNo);
  378. poItem.put(&quot;itemId&quot;, vars.get(&quot;item_id&quot;));
  379. poItem.put(&quot;packId&quot;, vars.get(&quot;pack_id&quot;));
  380. poItem.put(&quot;price&quot;, defaultPrice);
  381. poItem.put(&quot;poQty&quot;, defaultQty);
  382. // 包装条码
  383. poItem.put(&quot;lot01&quot;, &quot;&quot;);
  384. // 逻辑仓
  385. poItem.put(&quot;lot02&quot;, &quot;01&quot;);
  386. // 越库单号
  387. poItem.put(&quot;lot03&quot;, &quot;&quot;);
  388. // 生产日期
  389. poItem.put(&quot;lot04&quot;, defaultManufacture);
  390. // 有效期
  391. poItem.put(&quot;lot05&quot;, defaultValidUntil);
  392. // 批号
  393. poItem.put(&quot;lot06&quot;, &quot;PNO&quot; + lotNo + poLineNo);
  394. // 规格
  395. poItem.put(&quot;lot07&quot;, &quot;&quot;);
  396. // 批准文号
  397. poItem.put(&quot;lot08&quot;, &quot;PW&quot; + lotNo + poLineNo);
  398. // 厂家
  399. poItem.put(&quot;lot09&quot;, &quot;GALAXIS&quot;);
  400. // 产地
  401. poItem.put(&quot;lot10&quot;, &quot;湖北省武汉市&quot;);
  402. poItemList.add(poItem);
  403. vars.put(&quot;poItemList&quot;, util.toJson(poItemList));</stringProp>
  404. <stringProp name="scriptLanguage">java</stringProp>
  405. </JSR223Sampler>
  406. <hashTree/>
  407. </hashTree>
  408. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Build Save Po Param" enabled="true">
  409. <stringProp name="BeanShellSampler.query">com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  410. java.time.LocalDate currentDate = java.time.LocalDate.now();
  411. java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern(&quot;yyyyMMdd&quot;);
  412. java.time.format.DateTimeFormatter formatter2 = java.time.format.DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&quot;);
  413. String lotNo = currentDate.format(formatter) + vars.get(&quot;sequence&quot;);
  414. String bizCode = &quot;SDIN&quot; + lotNo;
  415. String defaultOrderType = &quot;0100&quot;;
  416. String defaultOrderBizType = &quot;C&quot;;
  417. Map po = new HashMap();
  418. po.put(&quot;wh_id&quot;, vars.get(&quot;wh_id&quot;));
  419. po.put(&quot;owner_id&quot;, vars.get(&quot;owner_id&quot;));
  420. po.put(&quot;supplier_id&quot;, vars.get(&quot;supplier_id&quot;));
  421. po.put(&quot;biz_code&quot;, bizCode);
  422. po.put(&quot;order_type&quot;, defaultOrderType);
  423. po.put(&quot;order_biz_type&quot;, defaultOrderBizType);
  424. po.put(&quot;po_date&quot;, currentDate.format(formatter2));
  425. po.put(&quot;po_code&quot;, bizCode);
  426. po.put(&quot;po_staff_id&quot;, vars.get(&quot;staff_id&quot;));
  427. po.put(&quot;remark&quot;, &quot;压测数据&quot;);
  428. //int maxPoLine = 2;
  429. //int defaultPrice = 100;
  430. //int defaultQty = 1000;
  431. //String defaultManufacture = java.time.LocalDate.of(2024, 1, 1).format(formatter2);
  432. //String defaultValidUntil = java.time.LocalDate.of(2024, 12, 31).format(formatter2);
  433. //
  434. //List poItemList = new ArrayList();
  435. //for (int i = 1; i &lt;= maxPoLine; i++) {
  436. // Map poItem = new HashMap();
  437. // poItem.put(&quot;poLineNo&quot;, i);
  438. // poItem.put(&quot;itemId&quot;, vars.get(&quot;itemId_&quot; + i));
  439. // poItem.put(&quot;packId&quot;, vars.get(&quot;packId_&quot; + i));
  440. // poItem.put(&quot;price&quot;, defaultPrice);
  441. // poItem.put(&quot;poQty&quot;, defaultQty);
  442. // // 包装条码
  443. // poItem.put(&quot;lot01&quot;, &quot;&quot;);
  444. // // 逻辑仓
  445. // poItem.put(&quot;lot02&quot;, &quot;01&quot;);
  446. // // 越库单号
  447. // poItem.put(&quot;lot03&quot;, &quot;&quot;);
  448. // // 生产日期
  449. // poItem.put(&quot;lot04&quot;, defaultManufacture);
  450. // // 有效期
  451. // poItem.put(&quot;lot05&quot;, defaultValidUntil);
  452. // // 批号
  453. // poItem.put(&quot;lot06&quot;, &quot;PNO&quot; + lotNo + i);
  454. // // 规格
  455. // poItem.put(&quot;lot07&quot;, &quot;&quot;);
  456. // // 批准文号
  457. // poItem.put(&quot;lot08&quot;, &quot;PW&quot; + lotNo + i);
  458. // // 厂家
  459. // poItem.put(&quot;lot09&quot;, &quot;GALAXIS&quot;);
  460. // // 产地
  461. // poItem.put(&quot;lot10&quot;, &quot;湖北省武汉市&quot;);
  462. // poItemList.add(poItem);
  463. //}
  464. vars.put(&quot;poId&quot;, util.toJson(po));
  465. vars.put(&quot;po&quot;, util.toJson(po));
  466. //vars.put(&quot;poItems&quot;, vars.get(&quot;poItemList&quot;));</stringProp>
  467. <stringProp name="BeanShellSampler.filename"></stringProp>
  468. <stringProp name="BeanShellSampler.parameters"></stringProp>
  469. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  470. </BeanShellSampler>
  471. <hashTree/>
  472. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Po@poSave8" enabled="true">
  473. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  474. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  475. <collectionProp name="Arguments.arguments">
  476. <elementProp name="" elementType="HTTPArgument">
  477. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  478. <stringProp name="Argument.value">{&#xd;
  479. &quot;args&quot;: [&#xd;
  480. {&#xd;
  481. &quot;po&quot;: ${po},&#xd;
  482. &quot;poItems&quot;: ${poItemList}&#xd;
  483. }&#xd;
  484. ]&#xd;
  485. }</stringProp>
  486. <stringProp name="Argument.metadata">=</stringProp>
  487. </elementProp>
  488. </collectionProp>
  489. </elementProp>
  490. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  491. <stringProp name="HTTPSampler.port">${port}</stringProp>
  492. <stringProp name="HTTPSampler.protocol"></stringProp>
  493. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  494. <stringProp name="HTTPSampler.path">api/com/galaxis/wms/inbound/poOrderManagement/Po@poSave</stringProp>
  495. <stringProp name="HTTPSampler.method">POST</stringProp>
  496. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  497. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  498. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  499. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  500. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  501. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  502. <stringProp name="HTTPSampler.connect_timeout">5000</stringProp>
  503. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  504. </HTTPSamplerProxy>
  505. <hashTree>
  506. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  507. <stringProp name="JSON_PATH">$.success</stringProp>
  508. <stringProp name="EXPECTED_VALUE">true</stringProp>
  509. <boolProp name="JSONVALIDATION">true</boolProp>
  510. <boolProp name="EXPECT_NULL">false</boolProp>
  511. <boolProp name="INVERT">false</boolProp>
  512. <boolProp name="ISREGEX">false</boolProp>
  513. </JSONPathAssertion>
  514. <hashTree/>
  515. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Po Id Extractor" enabled="true">
  516. <stringProp name="JSONPostProcessor.referenceNames"> poId</stringProp>
  517. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data</stringProp>
  518. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  519. </JSONPostProcessor>
  520. <hashTree/>
  521. </hashTree>
  522. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Asn@extractPo" enabled="true">
  523. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  524. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  525. <collectionProp name="Arguments.arguments">
  526. <elementProp name="" elementType="HTTPArgument">
  527. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  528. <stringProp name="Argument.value">{&#xd;
  529. &quot;args&quot;: [&#xd;
  530. {&#xd;
  531. &quot;poIds&quot;: [&#xd;
  532. &quot;${poId}&quot;&#xd;
  533. ]&#xd;
  534. }&#xd;
  535. ]&#xd;
  536. }</stringProp>
  537. <stringProp name="Argument.metadata">=</stringProp>
  538. </elementProp>
  539. </collectionProp>
  540. </elementProp>
  541. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  542. <stringProp name="HTTPSampler.port">${port}</stringProp>
  543. <stringProp name="HTTPSampler.protocol"></stringProp>
  544. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  545. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/inbound/asn/Asn@extractPo</stringProp>
  546. <stringProp name="HTTPSampler.method">POST</stringProp>
  547. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  548. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  549. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  550. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  551. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  552. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  553. <stringProp name="HTTPSampler.connect_timeout">5000</stringProp>
  554. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  555. </HTTPSamplerProxy>
  556. <hashTree>
  557. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  558. <stringProp name="JSON_PATH">$.success</stringProp>
  559. <stringProp name="EXPECTED_VALUE">true</stringProp>
  560. <boolProp name="JSONVALIDATION">true</boolProp>
  561. <boolProp name="EXPECT_NULL">false</boolProp>
  562. <boolProp name="INVERT">false</boolProp>
  563. <boolProp name="ISREGEX">false</boolProp>
  564. </JSONPathAssertion>
  565. <hashTree/>
  566. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Po Extractor" enabled="true">
  567. <stringProp name="JSONPostProcessor.referenceNames">poInfo</stringProp>
  568. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data</stringProp>
  569. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  570. </JSONPostProcessor>
  571. <hashTree/>
  572. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Asn Code Extractor" enabled="true">
  573. <stringProp name="JSONPostProcessor.referenceNames">asn_code</stringProp>
  574. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data.poMaster.asn_code</stringProp>
  575. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  576. </JSONPostProcessor>
  577. <hashTree/>
  578. </hashTree>
  579. <IfController guiclass="IfControllerPanel" testclass="IfController" testname="Has Asn Code Controller" enabled="true">
  580. <stringProp name="IfController.condition">${__jexl3(${asn_code_matchNr} &gt; 0)}</stringProp>
  581. <boolProp name="IfController.evaluateAll">false</boolProp>
  582. <boolProp name="IfController.useExpression">true</boolProp>
  583. </IfController>
  584. <hashTree>
  585. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Asn Commit Param" enabled="true">
  586. <stringProp name="BeanShellSampler.query">com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  587. Map poMap = util.parseJson(vars.get(&quot;poInfo&quot;), Map.class);
  588. Map poMasterMap = poMap.get(&quot;poMaster&quot;);
  589. poMasterMap.put(&quot;staff_id&quot;, vars.get(&quot;staff_id&quot;));
  590. poMasterMap.put(&quot;shipment_type&quot;, &quot;0004&quot;);
  591. List poDetails = poMap.get(&quot;poDetails&quot;);
  592. for(int i = 0; i &lt; poDetails.size(); i++){
  593. Map poDetail = poDetails.get(i);
  594. poDetail.put(&quot;asn_qty&quot;, poDetail.get(&quot;po_qty&quot;));
  595. }
  596. Map asnCommitParam = new HashMap();
  597. asnCommitParam.put(&quot;asn&quot;, poMasterMap);
  598. asnCommitParam.put(&quot;asnItems&quot;, poDetails);
  599. asnCommitParam.put(&quot;withSubmit&quot;, true);
  600. vars.put(&quot;asnCommitParam&quot;, util.toJson(asnCommitParam));</stringProp>
  601. <stringProp name="BeanShellSampler.filename"></stringProp>
  602. <stringProp name="BeanShellSampler.parameters"></stringProp>
  603. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  604. </BeanShellSampler>
  605. <hashTree/>
  606. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Asn@asnCommit" enabled="true">
  607. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  608. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  609. <collectionProp name="Arguments.arguments">
  610. <elementProp name="" elementType="HTTPArgument">
  611. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  612. <stringProp name="Argument.value">{&#xd;
  613. &quot;args&quot;: [&#xd;
  614. ${asnCommitParam}&#xd;
  615. ]&#xd;
  616. }</stringProp>
  617. <stringProp name="Argument.metadata">=</stringProp>
  618. </elementProp>
  619. </collectionProp>
  620. </elementProp>
  621. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  622. <stringProp name="HTTPSampler.port">${port}</stringProp>
  623. <stringProp name="HTTPSampler.protocol"></stringProp>
  624. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  625. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/inbound/asn/Asn@asnCommit</stringProp>
  626. <stringProp name="HTTPSampler.method">POST</stringProp>
  627. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  628. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  629. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  630. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  631. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  632. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  633. <stringProp name="HTTPSampler.connect_timeout">5000</stringProp>
  634. <stringProp name="HTTPSampler.response_timeout">15000</stringProp>
  635. </HTTPSamplerProxy>
  636. <hashTree>
  637. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  638. <stringProp name="JSON_PATH">$.success</stringProp>
  639. <stringProp name="EXPECTED_VALUE">true</stringProp>
  640. <boolProp name="JSONVALIDATION">true</boolProp>
  641. <boolProp name="EXPECT_NULL">false</boolProp>
  642. <boolProp name="INVERT">false</boolProp>
  643. <boolProp name="ISREGEX">false</boolProp>
  644. </JSONPathAssertion>
  645. <hashTree/>
  646. </hashTree>
  647. <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Asn Line Loop" enabled="true">
  648. <boolProp name="LoopController.continue_forever">true</boolProp>
  649. <stringProp name="LoopController.loops">${poLineNum}</stringProp>
  650. </LoopController>
  651. <hashTree>
  652. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Receipt@queryAsnInfo" enabled="true">
  653. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  654. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  655. <collectionProp name="Arguments.arguments">
  656. <elementProp name="" elementType="HTTPArgument">
  657. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  658. <stringProp name="Argument.value">{&#xd;
  659. &quot;args&quot;: [&#xd;
  660. {&#xd;
  661. &quot;asn_code&quot;: &quot;${asn_code}&quot;,&#xd;
  662. &quot;lpn&quot;: null,&#xd;
  663. &quot;biz_code&quot;: null,&#xd;
  664. &quot;parent_code&quot;: null,&#xd;
  665. &quot;asn_id&quot;: 0,&#xd;
  666. &quot;asn_line_no&quot;: 0&#xd;
  667. }&#xd;
  668. ]&#xd;
  669. }</stringProp>
  670. <stringProp name="Argument.metadata">=</stringProp>
  671. </elementProp>
  672. </collectionProp>
  673. </elementProp>
  674. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  675. <stringProp name="HTTPSampler.port">${port}</stringProp>
  676. <stringProp name="HTTPSampler.protocol"></stringProp>
  677. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  678. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/inbound/receipt/Receipt@queryAsnInfo</stringProp>
  679. <stringProp name="HTTPSampler.method">POST</stringProp>
  680. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  681. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  682. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  683. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  684. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  685. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  686. <stringProp name="HTTPSampler.connect_timeout">5000</stringProp>
  687. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  688. </HTTPSamplerProxy>
  689. <hashTree>
  690. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  691. <stringProp name="JSON_PATH">$.success</stringProp>
  692. <stringProp name="EXPECTED_VALUE">true</stringProp>
  693. <boolProp name="JSONVALIDATION">true</boolProp>
  694. <boolProp name="EXPECT_NULL">false</boolProp>
  695. <boolProp name="INVERT">false</boolProp>
  696. <boolProp name="ISREGEX">false</boolProp>
  697. </JSONPathAssertion>
  698. <hashTree/>
  699. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Asn Extractor" enabled="true">
  700. <stringProp name="JSONPostProcessor.referenceNames">asn</stringProp>
  701. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data.asn</stringProp>
  702. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  703. </JSONPostProcessor>
  704. <hashTree/>
  705. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Asn Item Extractor" enabled="true">
  706. <stringProp name="JSONPostProcessor.referenceNames">asn_item</stringProp>
  707. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data.asn_item</stringProp>
  708. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  709. </JSONPostProcessor>
  710. <hashTree/>
  711. </hashTree>
  712. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Build Is Inspect Param" enabled="true">
  713. <stringProp name="BeanShellSampler.query">com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  714. Map asn = util.parseJson(vars.get(&quot;asn&quot;), Map.class);
  715. vars.put(&quot;asn_id&quot;, String.valueOf(asn.get(&quot;asn_id&quot;)));
  716. Map asnItem = util.parseJson(vars.get(&quot;asn_item&quot;), Map.class);
  717. vars.put(&quot;item_id&quot;, String.valueOf(asnItem.get(&quot;item_id&quot;)));
  718. </stringProp>
  719. <stringProp name="BeanShellSampler.filename"></stringProp>
  720. <stringProp name="BeanShellSampler.parameters"></stringProp>
  721. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  722. </BeanShellSampler>
  723. <hashTree/>
  724. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Receipt@isInspectByAsn" enabled="true">
  725. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  726. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  727. <collectionProp name="Arguments.arguments">
  728. <elementProp name="" elementType="HTTPArgument">
  729. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  730. <stringProp name="Argument.value">{&#xd;
  731. &quot;args&quot;: [&#xd;
  732. {&#xd;
  733. &quot;asn_id&quot;: &quot;${asn_id}&quot;,&#xd;
  734. &quot;item_id&quot;: &quot;${item_id}&quot;&#xd;
  735. }&#xd;
  736. ]&#xd;
  737. }</stringProp>
  738. <stringProp name="Argument.metadata">=</stringProp>
  739. </elementProp>
  740. </collectionProp>
  741. </elementProp>
  742. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  743. <stringProp name="HTTPSampler.port">${port}</stringProp>
  744. <stringProp name="HTTPSampler.protocol"></stringProp>
  745. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  746. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/inbound/receipt/Receipt@isInspectByAsn</stringProp>
  747. <stringProp name="HTTPSampler.method">POST</stringProp>
  748. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  749. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  750. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  751. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  752. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  753. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  754. <stringProp name="HTTPSampler.connect_timeout">5000</stringProp>
  755. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  756. </HTTPSamplerProxy>
  757. <hashTree>
  758. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  759. <stringProp name="JSON_PATH">$.success</stringProp>
  760. <stringProp name="EXPECTED_VALUE">true</stringProp>
  761. <boolProp name="JSONVALIDATION">true</boolProp>
  762. <boolProp name="EXPECT_NULL">false</boolProp>
  763. <boolProp name="INVERT">false</boolProp>
  764. <boolProp name="ISREGEX">false</boolProp>
  765. </JSONPathAssertion>
  766. <hashTree/>
  767. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Is Inspect Extractor" enabled="true">
  768. <stringProp name="JSONPostProcessor.referenceNames">is_inspect</stringProp>
  769. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data</stringProp>
  770. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  771. </JSONPostProcessor>
  772. <hashTree/>
  773. </hashTree>
  774. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Build Save Receipt Item Param" enabled="true">
  775. <stringProp name="BeanShellSampler.query">import java.math.BigDecimal;
  776. import java.math.RoundingMode;
  777. com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  778. Map asn = util.parseJson(vars.get(&quot;asn&quot;), Map.class);
  779. Map asnItem = util.parseJson(vars.get(&quot;asn_item&quot;), Map.class);
  780. // log.info(&quot;asnItem &gt; &quot; + asnItem.get(&quot;asn_qty&quot;).getClass());
  781. // ASN单数量
  782. BigDecimal asnQty = new BigDecimal(asnItem.get(&quot;asn_qty&quot;));
  783. // 已收货数量
  784. BigDecimal receiptQty = new BigDecimal(asnItem.get(&quot;receipt_qty&quot;));
  785. // 已拒收数量
  786. BigDecimal receiptRejectQty = new BigDecimal(asnItem.get(&quot;receipt_reject_qty&quot;));
  787. // 当前收货数量 = ASN单数量 - 已收货数量 - 已拒收数量
  788. BigDecimal currentReceiptQty = asnQty.subtract(receiptQty).subtract(receiptRejectQty);
  789. // 包装数量
  790. BigDecimal packMeas3 = new BigDecimal(String.valueOf(asnItem.get(&quot;pack_meas3&quot;)));
  791. // 整件数
  792. BigDecimal receiptPackQty = currentReceiptQty.divide(packMeas3, 0, RoundingMode.FLOOR);
  793. // 零散数
  794. BigDecimal receiptUnpackQty = currentReceiptQty.subtract(receiptPackQty.multiply(packMeas3));
  795. Map saveReceiptItemParam = new HashMap();
  796. saveReceiptItemParam.put(&quot;asn_id&quot;, String.valueOf(asn.get(&quot;asn_id&quot;)));
  797. saveReceiptItemParam.put(&quot;asn_line_no&quot;, String.valueOf(asnItem.get(&quot;asn_line_no&quot;)));
  798. saveReceiptItemParam.put(&quot;item_id&quot;, String.valueOf(asnItem.get(&quot;item_id&quot;)));
  799. saveReceiptItemParam.put(&quot;is_inspection&quot;, String.valueOf(vars.get(&quot;is_inspect&quot;)));
  800. saveReceiptItemParam.put(&quot;is_shuttle&quot;, &quot;0000&quot;);
  801. saveReceiptItemParam.put(&quot;is_ctu&quot;, &quot;0001&quot;);
  802. saveReceiptItemParam.put(&quot;is_device&quot;, &quot;0000&quot;);
  803. //saveReceiptItemParam.put(&quot;is_chinese_medicine&quot;, &quot;0001&quot;);
  804. saveReceiptItemParam.put(&quot;pack_id&quot;, String.valueOf(asnItem.get(&quot;pack_id&quot;)));
  805. saveReceiptItemParam.put(&quot;lot_id&quot;, String.valueOf(asnItem.get(&quot;lot_id&quot;)));
  806. saveReceiptItemParam.put(&quot;current_receipt_qty&quot;, currentReceiptQty.toString());
  807. saveReceiptItemParam.put(&quot;receipt_pack_qty&quot;, receiptPackQty.toString());
  808. saveReceiptItemParam.put(&quot;pack_intent&quot;, &quot;0001&quot;);
  809. saveReceiptItemParam.put(&quot;receipt_unpack_qty&quot;, receiptUnpackQty.toString());
  810. saveReceiptItemParam.put(&quot;unpack_intent&quot;, &quot;0001&quot;);
  811. vars.put(&quot;saveReceiptItemParam&quot;, util.toJson(saveReceiptItemParam));
  812. </stringProp>
  813. <stringProp name="BeanShellSampler.filename"></stringProp>
  814. <stringProp name="BeanShellSampler.parameters"></stringProp>
  815. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  816. </BeanShellSampler>
  817. <hashTree/>
  818. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Receipt@saveReceiptItem" enabled="true">
  819. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  820. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  821. <collectionProp name="Arguments.arguments">
  822. <elementProp name="" elementType="HTTPArgument">
  823. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  824. <stringProp name="Argument.value">{&#xd;
  825. &quot;args&quot;: [&#xd;
  826. ${saveReceiptItemParam}&#xd;
  827. ]&#xd;
  828. }</stringProp>
  829. <stringProp name="Argument.metadata">=</stringProp>
  830. </elementProp>
  831. </collectionProp>
  832. </elementProp>
  833. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  834. <stringProp name="HTTPSampler.port">${port}</stringProp>
  835. <stringProp name="HTTPSampler.protocol"></stringProp>
  836. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  837. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/inbound/receipt/Receipt@saveReceiptItem</stringProp>
  838. <stringProp name="HTTPSampler.method">GET</stringProp>
  839. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  840. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  841. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  842. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  843. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  844. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  845. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  846. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  847. </HTTPSamplerProxy>
  848. <hashTree>
  849. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  850. <stringProp name="JSON_PATH">$.success</stringProp>
  851. <stringProp name="EXPECTED_VALUE">true</stringProp>
  852. <boolProp name="JSONVALIDATION">true</boolProp>
  853. <boolProp name="EXPECT_NULL">false</boolProp>
  854. <boolProp name="INVERT">false</boolProp>
  855. <boolProp name="ISREGEX">false</boolProp>
  856. </JSONPathAssertion>
  857. <hashTree/>
  858. </hashTree>
  859. </hashTree>
  860. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Acceptance@queryInspect" enabled="false">
  861. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  862. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  863. <collectionProp name="Arguments.arguments">
  864. <elementProp name="" elementType="HTTPArgument">
  865. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  866. <stringProp name="Argument.value">{&#xd;
  867. &quot;args&quot;: [&#xd;
  868. {&#xd;
  869. &quot;path&quot;: &quot;/com/galaxis/wms/inbound/acceptance/Acceptance&quot;,&#xd;
  870. &quot;pagination&quot;: true,&#xd;
  871. &quot;sqlId&quot;: &quot;tab1_grid1QueryData&quot;,&#xd;
  872. &quot;limit&quot;: 50,&#xd;
  873. &quot;page&quot;: 1,&#xd;
  874. &quot;start&quot;: 0,&#xd;
  875. &quot;receipt_code&quot;: &quot;${asn_code}&quot;,&#xd;
  876. &quot;customer_id&quot;: null,&#xd;
  877. &quot;order_biz_type&quot;: null,&#xd;
  878. &quot;receipt_id&quot;: null,&#xd;
  879. &quot;in_status&quot;: null,&#xd;
  880. &quot;condition&quot;: []&#xd;
  881. }&#xd;
  882. ]&#xd;
  883. }</stringProp>
  884. <stringProp name="Argument.metadata">=</stringProp>
  885. </elementProp>
  886. </collectionProp>
  887. </elementProp>
  888. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  889. <stringProp name="HTTPSampler.port">${port}</stringProp>
  890. <stringProp name="HTTPSampler.protocol"></stringProp>
  891. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  892. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/Dev@executeSQL?path=/com/galaxis/wms/inbound/acceptance/Acceptance@tab1_grid1QueryData</stringProp>
  893. <stringProp name="HTTPSampler.method">POST</stringProp>
  894. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  895. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  896. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  897. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  898. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  899. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  900. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  901. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  902. </HTTPSamplerProxy>
  903. <hashTree>
  904. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  905. <stringProp name="JSON_PATH">$.success</stringProp>
  906. <stringProp name="EXPECTED_VALUE">true</stringProp>
  907. <boolProp name="JSONVALIDATION">true</boolProp>
  908. <boolProp name="EXPECT_NULL">false</boolProp>
  909. <boolProp name="INVERT">false</boolProp>
  910. <boolProp name="ISREGEX">false</boolProp>
  911. </JSONPathAssertion>
  912. <hashTree/>
  913. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Inspect Id Extractor" enabled="true">
  914. <stringProp name="JSONPostProcessor.referenceNames">inspect_id</stringProp>
  915. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data[*].inspect_id</stringProp>
  916. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  917. </JSONPostProcessor>
  918. <hashTree/>
  919. </hashTree>
  920. <IfController guiclass="IfControllerPanel" testclass="IfController" testname="Is Inspect Controller" enabled="false">
  921. <stringProp name="IfController.condition">${__jexl3(${inspect_id_matchNr} &gt; 0)}</stringProp>
  922. <boolProp name="IfController.evaluateAll">false</boolProp>
  923. <boolProp name="IfController.useExpression">true</boolProp>
  924. </IfController>
  925. <hashTree>
  926. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Acceptance@queryInspectItem" enabled="true">
  927. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  928. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  929. <collectionProp name="Arguments.arguments">
  930. <elementProp name="" elementType="HTTPArgument">
  931. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  932. <stringProp name="Argument.value">{&#xd;
  933. &quot;args&quot;: [&#xd;
  934. {&#xd;
  935. &quot;path&quot;: &quot;/com/galaxis/wms/inbound/acceptance/Acceptance&quot;,&#xd;
  936. &quot;pagination&quot;: true,&#xd;
  937. &quot;sqlId&quot;: &quot;tab1_grid2QueryData&quot;,&#xd;
  938. &quot;limit&quot;: 10000,&#xd;
  939. &quot;page&quot;: 1,&#xd;
  940. &quot;start&quot;: 0,&#xd;
  941. &quot;inspect_id&quot;: &quot;${inspect_id}&quot;,&#xd;
  942. &quot;condition&quot;: []&#xd;
  943. }&#xd;
  944. ]&#xd;
  945. }</stringProp>
  946. <stringProp name="Argument.metadata">=</stringProp>
  947. </elementProp>
  948. </collectionProp>
  949. </elementProp>
  950. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  951. <stringProp name="HTTPSampler.port">${port}</stringProp>
  952. <stringProp name="HTTPSampler.protocol"></stringProp>
  953. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  954. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/Dev@executeSQL?path=/com/galaxis/wms/inbound/acceptance/Acceptance@tab1_grid2QueryData</stringProp>
  955. <stringProp name="HTTPSampler.method">POST</stringProp>
  956. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  957. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  958. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  959. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  960. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  961. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  962. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  963. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  964. </HTTPSamplerProxy>
  965. <hashTree>
  966. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  967. <stringProp name="JSON_PATH">$.success</stringProp>
  968. <stringProp name="EXPECTED_VALUE">true</stringProp>
  969. <boolProp name="JSONVALIDATION">true</boolProp>
  970. <boolProp name="EXPECT_NULL">false</boolProp>
  971. <boolProp name="INVERT">false</boolProp>
  972. <boolProp name="ISREGEX">false</boolProp>
  973. </JSONPathAssertion>
  974. <hashTree/>
  975. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Inspect Item Extractor" enabled="true">
  976. <stringProp name="JSONPostProcessor.referenceNames">inspect_item_list</stringProp>
  977. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data.[*]</stringProp>
  978. <stringProp name="JSONPostProcessor.match_numbers">-1</stringProp>
  979. </JSONPostProcessor>
  980. <hashTree/>
  981. </hashTree>
  982. <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="Acceptance ForEach" enabled="true">
  983. <stringProp name="ForeachController.inputVal">inspect_item_list</stringProp>
  984. <stringProp name="ForeachController.returnVal">inspect_item</stringProp>
  985. <boolProp name="ForeachController.useSeparator">true</boolProp>
  986. <stringProp name="ForeachController.startIndex">0</stringProp>
  987. <stringProp name="ForeachController.endIndex">${inspect_item_list_matchNr}</stringProp>
  988. </ForeachController>
  989. <hashTree>
  990. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Acceptance Param Sampler" enabled="true">
  991. <stringProp name="BeanShellSampler.query">import java.math.BigDecimal;
  992. import java.math.RoundingMode;
  993. com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  994. Map inspectItem = util.parseJson(vars.get(&quot;inspect_item&quot;), Map.class);
  995. // 质检数量
  996. BigDecimal qty = new BigDecimal(inspectItem.get(&quot;qty&quot;));
  997. // 已质检数量
  998. BigDecimal inspectQty = new BigDecimal(inspectItem.get(&quot;inspect_qty&quot;));
  999. // 已拒收数量
  1000. BigDecimal receiptQty = new BigDecimal(inspectItem.get(&quot;reject_qty&quot;));
  1001. // 需质检数量 = 质检数量 - 已质检数量 - 已拒收数量
  1002. BigDecimal qualityQty = qty.subtract(inspectQty).subtract(receiptQty);
  1003. // 包装数量
  1004. BigDecimal packMeas = new BigDecimal(String.valueOf(inspectItem.get(&quot;pack_meas&quot;)));
  1005. // 质检整件数
  1006. BigDecimal qualityWholeQty = qualityQty.divide(packMeas, 0, RoundingMode.FLOOR);
  1007. // 质检零散数
  1008. BigDecimal qualityLessQty = qualityQty.subtract(qualityWholeQty.multiply(packMeas));
  1009. Map saveInspectParam = new HashMap();
  1010. saveInspectParam.put(&quot;inspect_id&quot;, String.valueOf(inspectItem.get(&quot;inspect_id&quot;)));
  1011. saveInspectParam.put(&quot;inspect_line_nos&quot;, String.valueOf(inspectItem.get(&quot;inspect_line_nos&quot;)));
  1012. saveInspectParam.put(&quot;item_id&quot;, String.valueOf(inspectItem.get(&quot;item_id&quot;)));
  1013. saveInspectParam.put(&quot;pack_id&quot;, String.valueOf(inspectItem.get(&quot;pack_id&quot;)));
  1014. saveInspectParam.put(&quot;lot_id&quot;, String.valueOf(inspectItem.get(&quot;lot_id&quot;)));
  1015. saveInspectParam.put(&quot;quality_reject_qty&quot;, &quot;0&quot;);
  1016. saveInspectParam.put(&quot;is_chinese_medicine&quot;, String.valueOf(inspectItem.get(&quot;is_chinese_medicine&quot;)));
  1017. saveInspectParam.put(&quot;quality_less_qty&quot;, qualityLessQty.toString());
  1018. saveInspectParam.put(&quot;quality_whole_qty&quot;, qualityWholeQty.toString());
  1019. saveInspectParam.put(&quot;quality_qty&quot;, qualityQty.toString());
  1020. saveInspectParam.put(&quot;put_intent_less&quot;, &quot;0001&quot;);
  1021. saveInspectParam.put(&quot;put_intent_whole&quot;, &quot;0001&quot;);
  1022. saveInspectParam.put(&quot;quality_assert&quot;, &quot;0001&quot;);
  1023. saveInspectParam.put(&quot;quality_staff_id1&quot;, vars.get(&quot;staff_id&quot;));
  1024. vars.put(&quot;saveInspectParam&quot;, util.toJson(saveInspectParam));</stringProp>
  1025. <stringProp name="BeanShellSampler.filename"></stringProp>
  1026. <stringProp name="BeanShellSampler.parameters"></stringProp>
  1027. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  1028. </BeanShellSampler>
  1029. <hashTree/>
  1030. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Acceptance@inspectSave" enabled="true">
  1031. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  1032. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  1033. <collectionProp name="Arguments.arguments">
  1034. <elementProp name="" elementType="HTTPArgument">
  1035. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  1036. <stringProp name="Argument.value">{&#xd;
  1037. &quot;args&quot;: [&#xd;
  1038. {&#xd;
  1039. &quot;form_data&quot;: ${saveInspectParam}&#xd;
  1040. }&#xd;
  1041. ]&#xd;
  1042. }</stringProp>
  1043. <stringProp name="Argument.metadata">=</stringProp>
  1044. </elementProp>
  1045. </collectionProp>
  1046. </elementProp>
  1047. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  1048. <stringProp name="HTTPSampler.port">${port}</stringProp>
  1049. <stringProp name="HTTPSampler.protocol"></stringProp>
  1050. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  1051. <stringProp name="HTTPSampler.path">api/com/galaxis/wms/inbound/acceptance/Acceptance@inspectSave</stringProp>
  1052. <stringProp name="HTTPSampler.method">POST</stringProp>
  1053. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  1054. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  1055. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  1056. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  1057. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  1058. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  1059. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  1060. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  1061. </HTTPSamplerProxy>
  1062. <hashTree>
  1063. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  1064. <stringProp name="JSON_PATH">$.success</stringProp>
  1065. <stringProp name="EXPECTED_VALUE">true</stringProp>
  1066. <boolProp name="JSONVALIDATION">true</boolProp>
  1067. <boolProp name="EXPECT_NULL">false</boolProp>
  1068. <boolProp name="INVERT">false</boolProp>
  1069. <boolProp name="ISREGEX">false</boolProp>
  1070. </JSONPathAssertion>
  1071. <hashTree/>
  1072. </hashTree>
  1073. </hashTree>
  1074. </hashTree>
  1075. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="PutAway@queryPut" enabled="false">
  1076. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  1077. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  1078. <collectionProp name="Arguments.arguments">
  1079. <elementProp name="" elementType="HTTPArgument">
  1080. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  1081. <stringProp name="Argument.value">{&#xd;
  1082. &quot;args&quot;: [&#xd;
  1083. {&#xd;
  1084. &quot;path&quot;: &quot;/com/galaxis/wms/inbound/putAway/PutAway&quot;,&#xd;
  1085. &quot;pagination&quot;: true,&#xd;
  1086. &quot;sqlId&quot;: &quot;queryPut&quot;,&#xd;
  1087. &quot;limit&quot;: 50,&#xd;
  1088. &quot;page&quot;: 1,&#xd;
  1089. &quot;start&quot;: 0,&#xd;
  1090. &quot;start_time&quot;: null,&#xd;
  1091. &quot;end_time&quot;: null,&#xd;
  1092. &quot;order_biz_type&quot;: null,&#xd;
  1093. &quot;owner_name&quot;: null,&#xd;
  1094. &quot;put_code&quot;: &quot;${asn_code}&quot;,&#xd;
  1095. &quot;receipt_code&quot;: null,&#xd;
  1096. &quot;asn_code&quot;: null,&#xd;
  1097. &quot;condition&quot;: []&#xd;
  1098. }&#xd;
  1099. ]&#xd;
  1100. }</stringProp>
  1101. <stringProp name="Argument.metadata">=</stringProp>
  1102. </elementProp>
  1103. </collectionProp>
  1104. </elementProp>
  1105. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  1106. <stringProp name="HTTPSampler.port">${port}</stringProp>
  1107. <stringProp name="HTTPSampler.protocol"></stringProp>
  1108. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  1109. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/Dev@executeSQL?path=/com/galaxis/wms/inbound/putAway/PutAway@queryPut</stringProp>
  1110. <stringProp name="HTTPSampler.method">POST</stringProp>
  1111. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  1112. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  1113. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  1114. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  1115. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  1116. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  1117. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  1118. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  1119. </HTTPSamplerProxy>
  1120. <hashTree>
  1121. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  1122. <stringProp name="JSON_PATH">$.success</stringProp>
  1123. <stringProp name="EXPECTED_VALUE">true</stringProp>
  1124. <boolProp name="JSONVALIDATION">true</boolProp>
  1125. <boolProp name="EXPECT_NULL">false</boolProp>
  1126. <boolProp name="INVERT">false</boolProp>
  1127. <boolProp name="ISREGEX">false</boolProp>
  1128. </JSONPathAssertion>
  1129. <hashTree/>
  1130. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="put Id Extractor" enabled="true">
  1131. <stringProp name="JSONPostProcessor.referenceNames">put_id</stringProp>
  1132. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data[*].put_id</stringProp>
  1133. <stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
  1134. </JSONPostProcessor>
  1135. <hashTree/>
  1136. </hashTree>
  1137. <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="false">
  1138. <boolProp name="displayJMeterProperties">false</boolProp>
  1139. <boolProp name="displayJMeterVariables">true</boolProp>
  1140. <boolProp name="displaySystemProperties">false</boolProp>
  1141. </DebugSampler>
  1142. <hashTree/>
  1143. <IfController guiclass="IfControllerPanel" testclass="IfController" testname="Has Put Id Controller" enabled="false">
  1144. <stringProp name="IfController.condition">${__jexl3(${put_id_matchNr} &gt; 0)}</stringProp>
  1145. <boolProp name="IfController.evaluateAll">false</boolProp>
  1146. <boolProp name="IfController.useExpression">true</boolProp>
  1147. </IfController>
  1148. <hashTree>
  1149. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="PutAway@queryPutItems" enabled="true">
  1150. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  1151. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  1152. <collectionProp name="Arguments.arguments">
  1153. <elementProp name="" elementType="HTTPArgument">
  1154. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  1155. <stringProp name="Argument.value">{&#xd;
  1156. &quot;args&quot;: [&#xd;
  1157. {&#xd;
  1158. &quot;path&quot;: &quot;/com/galaxis/wms/inbound/putAway/PutAway&quot;,&#xd;
  1159. &quot;pagination&quot;: true,&#xd;
  1160. &quot;sqlId&quot;: &quot;queryPutItems&quot;,&#xd;
  1161. &quot;limit&quot;: 10000,&#xd;
  1162. &quot;page&quot;: 1,&#xd;
  1163. &quot;start&quot;: 0,&#xd;
  1164. &quot;put_id&quot;: &quot;${put_id}&quot;,&#xd;
  1165. &quot;condition&quot;: []&#xd;
  1166. }&#xd;
  1167. ]&#xd;
  1168. }</stringProp>
  1169. <stringProp name="Argument.metadata">=</stringProp>
  1170. </elementProp>
  1171. </collectionProp>
  1172. </elementProp>
  1173. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  1174. <stringProp name="HTTPSampler.port">${port}</stringProp>
  1175. <stringProp name="HTTPSampler.protocol"></stringProp>
  1176. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  1177. <stringProp name="HTTPSampler.path">/api/com/galaxis/wms/Dev@executeSQL?path=/com/galaxis/wms/inbound/putAway/PutAway@queryPutItems</stringProp>
  1178. <stringProp name="HTTPSampler.method">POST</stringProp>
  1179. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  1180. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  1181. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  1182. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  1183. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  1184. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  1185. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  1186. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  1187. </HTTPSamplerProxy>
  1188. <hashTree>
  1189. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  1190. <stringProp name="JSON_PATH">$.success</stringProp>
  1191. <stringProp name="EXPECTED_VALUE">true</stringProp>
  1192. <boolProp name="JSONVALIDATION">true</boolProp>
  1193. <boolProp name="EXPECT_NULL">false</boolProp>
  1194. <boolProp name="INVERT">false</boolProp>
  1195. <boolProp name="ISREGEX">false</boolProp>
  1196. </JSONPathAssertion>
  1197. <hashTree/>
  1198. <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Put Item Extractor" enabled="true">
  1199. <stringProp name="JSONPostProcessor.referenceNames">put_item_list</stringProp>
  1200. <stringProp name="JSONPostProcessor.jsonPathExprs">$.data.[*]</stringProp>
  1201. <stringProp name="JSONPostProcessor.match_numbers">-1</stringProp>
  1202. </JSONPostProcessor>
  1203. <hashTree/>
  1204. </hashTree>
  1205. <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="Put ForEach" enabled="true">
  1206. <stringProp name="ForeachController.inputVal">put_item_list</stringProp>
  1207. <stringProp name="ForeachController.returnVal">put_item</stringProp>
  1208. <boolProp name="ForeachController.useSeparator">true</boolProp>
  1209. <stringProp name="ForeachController.startIndex">0</stringProp>
  1210. <stringProp name="ForeachController.endIndex">${put_item_list_matchNr}</stringProp>
  1211. </ForeachController>
  1212. <hashTree>
  1213. <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Put Param Sampler" enabled="true">
  1214. <stringProp name="BeanShellSampler.query">com.JMeterUtil util = com.Yvan.init(vars, log, ctx);
  1215. Map putItem = util.parseJson(vars.get(&quot;put_item&quot;), Map.class);
  1216. Map commitPutawayParam = new HashMap();
  1217. commitPutawayParam.put(&quot;put_id&quot;, String.valueOf(putItem.get(&quot;put_id&quot;)));
  1218. commitPutawayParam.put(&quot;put_line_no&quot;, String.valueOf(putItem.get(&quot;put_line_no&quot;)));
  1219. commitPutawayParam.put(&quot;item_id&quot;, String.valueOf(putItem.get(&quot;item_id&quot;)));
  1220. commitPutawayParam.put(&quot;lot_id&quot;, String.valueOf(putItem.get(&quot;lot_id&quot;)));
  1221. commitPutawayParam.put(&quot;pack_id&quot;, String.valueOf(putItem.get(&quot;pack_id&quot;)));
  1222. commitPutawayParam.put(&quot;qty&quot;, String.valueOf(putItem.get(&quot;qty&quot;)));
  1223. commitPutawayParam.put(&quot;put_pack_qty&quot;, String.valueOf(putItem.get(&quot;put_pack_qty&quot;)));
  1224. commitPutawayParam.put(&quot;put_unpack_qty&quot;, String.valueOf(putItem.get(&quot;put_unpack_qty&quot;)));
  1225. commitPutawayParam.put(&quot;put_code&quot;, String.valueOf(putItem.get(&quot;put_code&quot;)));
  1226. commitPutawayParam.put(&quot;lpn&quot;, String.valueOf(putItem.get(&quot;lpn&quot;)));
  1227. commitPutawayParam.put(&quot;loc_id&quot;, String.valueOf(putItem.get(&quot;loc_id&quot;)));
  1228. vars.put(&quot;commitPutawayParam&quot;, util.toJson(Collections.singleton(commitPutawayParam)));</stringProp>
  1229. <stringProp name="BeanShellSampler.filename"></stringProp>
  1230. <stringProp name="BeanShellSampler.parameters"></stringProp>
  1231. <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  1232. </BeanShellSampler>
  1233. <hashTree/>
  1234. <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="PutAway@commit" enabled="true">
  1235. <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  1236. <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  1237. <collectionProp name="Arguments.arguments">
  1238. <elementProp name="" elementType="HTTPArgument">
  1239. <boolProp name="HTTPArgument.always_encode">false</boolProp>
  1240. <stringProp name="Argument.value">{&#xd;
  1241. &quot;args&quot;: [&#xd;
  1242. {&#xd;
  1243. &quot;put_details&quot;: ${commitPutawayParam}&#xd;
  1244. }&#xd;
  1245. ]&#xd;
  1246. }</stringProp>
  1247. <stringProp name="Argument.metadata">=</stringProp>
  1248. </elementProp>
  1249. </collectionProp>
  1250. </elementProp>
  1251. <stringProp name="HTTPSampler.domain">${server}</stringProp>
  1252. <stringProp name="HTTPSampler.port">${port}</stringProp>
  1253. <stringProp name="HTTPSampler.protocol"></stringProp>
  1254. <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
  1255. <stringProp name="HTTPSampler.path">api/com/galaxis/wms/inbound/putAway/PutAway@commit</stringProp>
  1256. <stringProp name="HTTPSampler.method">POST</stringProp>
  1257. <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
  1258. <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  1259. <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  1260. <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  1261. <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  1262. <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
  1263. <stringProp name="HTTPSampler.connect_timeout">1500</stringProp>
  1264. <stringProp name="HTTPSampler.response_timeout">5000</stringProp>
  1265. </HTTPSamplerProxy>
  1266. <hashTree>
  1267. <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="success" enabled="true">
  1268. <stringProp name="JSON_PATH">$.success</stringProp>
  1269. <stringProp name="EXPECTED_VALUE">true</stringProp>
  1270. <boolProp name="JSONVALIDATION">true</boolProp>
  1271. <boolProp name="EXPECT_NULL">false</boolProp>
  1272. <boolProp name="INVERT">false</boolProp>
  1273. <boolProp name="ISREGEX">false</boolProp>
  1274. </JSONPathAssertion>
  1275. <hashTree/>
  1276. </hashTree>
  1277. </hashTree>
  1278. </hashTree>
  1279. </hashTree>
  1280. </hashTree>
  1281. </hashTree>
  1282. </hashTree>
  1283. </jmeterTestPlan>